grafana/docs
Gareth Dawson 4e42f9b619
Loki: Add the ability to prettify logql queries (#64337)
* pushed to get help of a genius

* fix: error response is not json

* feat: make request on click

* refactor: remove print statement

* refactor: remove unnecessary code

* feat: convert grafana variables to value for API request

* use the parser to interpolate and recover the original query (#64591)

* Prettify query: use the parser to interpolate and recover the original query

* Fix typo

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>

* Fix typo

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>

* fix: reverse transformation not working

---------

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Gareth Dawson <gwdawson.work@gmail.com>

* fix: bugs created from merge

* refactor: move prettify code out of monaco editor

* fix: variables with the same value get converted back to the incorect variable

* refactor

* use consistent styling with bigquery

* fix: only allow text/plain and application/json

* fix: only make the request if the query is valid

* endpoint now returns application/json

* prettify from js

* WIP: not all cases are handles, code still needs cleaning up

* WIP

* large refactor, finished support for all pipeline expressions

* add tests for all format functions

* idk why these files changed

* add support for range aggregation expr & refactor

* add support for vector aggregation expressions

* add support for bin op expression

* add support for literal and vector expressions

* add tests and fix some bugs

* add support for distinct and decolorize

* feat: update variable replace and return

* fix: lezer throws an errow when using a range variable

* remove api implementation

* remove api implementation

* remove type assertions

* add feature flag

* update naming

* fix: bug incorrectly formatting unwrap with labelfilter

* support label replace expr

* remove duplicate code (after migration)

* add more tests

* validate query before formatting

* move tests to lezer repo

* add feature tracking

* populate feature tracking with some data

* upgrade lezer version to 0.1.7

* bump lezer to 0.1.8

* add tests

---------

Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2023-07-21 13:03:56 +01:00
..
sources Loki: Add the ability to prettify logql queries (#64337) 2023-07-21 13:03:56 +01:00
.gitignore Docs: Add minimal hugo build, update docs README (#20905) 2019-12-13 15:47:28 +01:00
docs.mk Update make docs procedure (#71810) 2023-07-18 09:52:11 +01:00
logo-horizontal.png Added back logo file (#21198) 2019-12-19 09:09:48 -08:00
make-docs Update make docs procedure (#71810) 2023-07-18 09:52:11 +01:00
Makefile Use centralized make-docs script from Writers' Toolkit (#66440) 2023-04-18 11:46:10 +01:00
README.md Docs, update README to explain local build (#61086) 2023-05-02 13:28:23 +01:00
variables.mk Update make docs procedure and related workflows (#71537) 2023-07-13 18:24:23 +01:00

Building the docs locally

When you contribute to documentation, it's a good practice to build the docs on your local machine to make sure your changes appear as you expect. This README explains the process for doing that.

To build a local version, you need to run a process in a Docker container. Grafana periodically updates the Docker image, docs-base, to update the styling of the Docs.

Requirements

  • Docker >= 2.1.0.3
  • Yarn >= 1.22.4

Build the doc site

First, make sure the Docker daemon is running on your machine. Then, follow these steps:

  1. On the command line, first change to the docs folder: cd docs.
  2. Run make docs. This launches a preview of the website with the current grafana docs at http://localhost:3002/docs/grafana/latest/ which will refresh automatically when changes are made to content in the sources directory.

If you have the grafana/website repo checked out in the same directory as the grafana repo, then you can run make docs-local-static to use local assets (such as images).


Content guidelines

Edit content in the sources directory.

Contributing

Use the Hugo shortcode relref any time you are linking to other internal docs pages.

Syntax is:

{{< relref "example.md" >}}

You might need to add more context for the link (containing folders and so on, folder/example.md) if Hugo says the relref is ambiguous.

Managing redirects

When moving content around or removing pages it's important that users following old links are properly redirected to the new location. We do this using the aliases feature in Hugo.

If you are moving a page, add an aliases entry in the front matter referencing the old location of the page which will redirect the old url to the new location.

If you are removing a page, add an aliases entry in the front matter of the most-applicable page referencing the location of the page being removed.

If you are copying an existing page as the basis for a new one, be sure to remove any aliases entries in the front matter in your copy to avoid conflicting redirects.

Edit the side menu

The side menu is automatically build from the file structure. Use the weight front matter parameter to order pages.

To specify different menu text from the page title, use the front matter parameter menuTitle.

Add images

Please see our help documentation on Image, diagram, and screenshot guidelines for comprehensive information.


Deploy changes to grafana.com

When a PR is merged with changes in the docs/sources directory, those changes are automatically synced by a GitHub action (.github/workflows/publish.yml) to the grafana/website repo.

  • A PR that targets the main branch syncs to the content/docs/grafana/next directory in the website repository, and publishes to https://grafana.com/docs/grafana/next/.
  • A PR targeting the latest/current release branch syncs to the content/docs/grafana/latest directory in the website repository, and publishes to https://grafana.com/docs/grafana/latest/.

Once the sync is complete, the website will automatically publish to production - no further action is needed.