All Projects → prometheus-community → Promql Langserver

prometheus-community / Promql Langserver

Licence: apache-2.0
PromQL language server

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Promql Langserver

Timbala
Durable time-series database that's API-compatible with Prometheus.
Stars: ✭ 85 (-9.57%)
Mutual labels:  prometheus
Service Tools
Prepare your Node.js application for production
Stars: ✭ 89 (-5.32%)
Mutual labels:  prometheus
Prometheus Hystrix
This is an implementation of a HystrixMetricsPublisher that publishes metrics using the Prometheus java client.
Stars: ✭ 91 (-3.19%)
Mutual labels:  prometheus
Starlette exporter
Prometheus exporter for Starlette and FastAPI
Stars: ✭ 85 (-9.57%)
Mutual labels:  prometheus
Promqueen
prometheus offline data recorder and backfiller
Stars: ✭ 88 (-6.38%)
Mutual labels:  prometheus
Slo Generator
Easy setup a service level objective using prometheus
Stars: ✭ 91 (-3.19%)
Mutual labels:  prometheus
Otomi Core
Otomi Container Platform, a suite of integrated best of breed open source tools combined with automation & self service, all wrapped together and made available as an enterprise ready and single deployable solution
Stars: ✭ 84 (-10.64%)
Mutual labels:  prometheus
Ciao
HTTP checks & tests (private & public) monitoring - check the status of your URL
Stars: ✭ 1,322 (+1306.38%)
Mutual labels:  prometheus
Filodb
Distributed Prometheus time series database
Stars: ✭ 1,286 (+1268.09%)
Mutual labels:  prometheus
Stackdriver Prometheus Sidecar
A sidecar for the Prometheus server that can send metrics to Stackdriver.
Stars: ✭ 91 (-3.19%)
Mutual labels:  prometheus
Cloudprober
An active monitoring software to detect failures before your customers do.
Stars: ✭ 1,269 (+1250%)
Mutual labels:  prometheus
Homer App
HOMER 7.x Front-End and API Server
Stars: ✭ 88 (-6.38%)
Mutual labels:  prometheus
Spyglass
Development tools for vanilla Minecraft: Java Edition content creators.
Stars: ✭ 91 (-3.19%)
Mutual labels:  language-server
Nsq exporter
Prometheus Metrics exporter for NSQ
Stars: ✭ 85 (-9.57%)
Mutual labels:  prometheus
Eureka Consul Adapter
This project contains a Spring Boot Starter that registers HTTP endpoints on a Spring Cloud Eureka server to support Prometheus's service discovery mechanism for Consul (<consul_sd_config>)
Stars: ✭ 93 (-1.06%)
Mutual labels:  prometheus
Bird exporter
Bird protocol state exporter for bird routing daemon to use with https://prometheus.io/
Stars: ✭ 85 (-9.57%)
Mutual labels:  prometheus
Febs Cloud
基于Spring Cloud Hoxton.RELEASE、Spring Cloud OAuth2 & Spring Cloud Alibaba & Element 微服务权限系统,开箱即用。预览地址:https://cloud.mrbird.cn
Stars: ✭ 1,295 (+1277.66%)
Mutual labels:  prometheus
Ensime Server
ENSIME JVM Process
Stars: ✭ 1,323 (+1307.45%)
Mutual labels:  language-server
Ansible Alertmanager
Deploy Prometheus Alertmanager service
Stars: ✭ 93 (-1.06%)
Mutual labels:  prometheus
Trickster
Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator
Stars: ✭ 1,306 (+1289.36%)
Mutual labels:  prometheus

CircleCI Go Report Card GoDoc golangci-lint

promql-lsp

Implementation of the Language Server Protocol for PromQL.

Roadmap

  • [x] Connect to IDEs and text editors over
    • [x] Stdio
    • [ ] Websocket
    • [ ] HTTP
  • [x] Sync document content with the client
  • [x] Support plain PromQL queries
  • [x] Support queries inside yaml files (e.g. alertmanager configuration)
  • [x] Connect to a prometheus instance to get label and metric data
  • [x] Show error messages for incorrect queries in the client
  • [ ] Show documentation on hover
    • [x] Type information
    • [x] Function documentation
    • [x] Aggregator documentation
    • [ ] Keyword documentation
    • [x] Metric and label help strings from a prometheus instance
  • [ ] Completion
    • [x] Functions
    • [x] Metrics
    • [x] Recording Rules
    • [x] Aggregators
    • [x] Labels
    • [x] Label Values
    • [ ] Context sensitive, i.e respecting function argument types
  • [x] Signature information for functions (while typing)
  • [ ] (Linting)
  • [ ] (Formatting)

Some Screenshots

Completion in VS Code

Completion in VS Code

Metric metadata from a Prometheus Server

Metric Metadata in VS Code

Viewing documentation right from your editor

Docs in VS Code

Vim and other editors are supported, too

Vim

Using the Language Server

A Language Server on its own is not very useful. You need some Language Client to use it with.

The following Language Clients have been tested with this language server. More will be added in the future.

Feel free to reach out if you want to use it with another Editor/Tool.

Reading this documentation can help you in your work.

VS Code

There exists a VS Code extension based on this language server: https://github.com/slrtbtfs/vscode-prometheus

It is used as the main test platform for this language server.

Since it isn't published on the Extensions Marketplace yet, you'll have to follow the somewhat more complicated installation steps described in the README there.

(Neo)Vim

With Vim, currently only PromQL queries inside YAML files work without additional support. Generally the experience with Vim is more buggy than with VS Code.

Setup

  1. Install the YouCompleteMe Plugin.

  2. Put the configuration following configuration file for the language server in .vim/promql-lsp.yaml.

     # Change this adress to the address of the prometheus server you want to use for metadata
     prometheus_url: http://localhost:9090
     rpc_trace: text
    
  3. Add the following to your .vimrc

     let g:ycm_language_server = [
       \   { 'name': 'promql',
       \     'filetypes': [ 'yaml' ],
       \     'cmdline': [ 'promql-langserver', '--config-file', expand('~/.vim/promql-lsp.yaml')]
       \   },
       \ ]
    

Debugging

The Vim command :YcmDebugInfo gives status information and points to logfiles.

Sublime Text 3

  1. Install package LSP, LSP-promql via Package Control.
  2. Follow the installation instruction.

Contributing

Refer to CONTRIBUTING.md

License

Apache License 2.0, see LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].