prometheus-community / promql-langserver

PromQL language server
Apache License 2.0
177 stars 18 forks source link
language-server prometheus promql yaml-support

CircleCI Go Report Card GoDoc golangci-lint

promql-lsp

Implementation of the Language Server Protocol for PromQL.

Roadmap

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.