cos-tool

command module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 7, 2022 License: Apache-2.0 Imports: 2 Imported by: 0

README

cos-tool

Transforms PromQL/LogQL expressions on the fly, and validates that Alert rules can be parsed successfully by either Prometheus or Loki.

Usage

Given the expression

job:request_latency_seconds:mean5m{job=\"myjob\"} > 0.5
PromQL

Running:

$ ./cos-tool transform \
    --label-matcher juju_model=lma \
    --label-matcher juju_model_uuid=12345 \
    --label-matcher juju_application=proxy \
    --label-matcher juju_unit=proxy/1 \
    "job:request_latency_seconds:mean5m{job=\"myjob\"} > 0.5"

Would output

job:request_latency_seconds:mean5m{job="myjob",juju_application="proxy",juju_model="lma",juju_model_uuid="12345",juju_unit="proxy/1"} > 0.5
LogQL

Running:

$ ./cos-tool transform \
    --label-matcher juju_model=lma \
    --label-matcher juju_model_uuid=12345 \
    --label-matcher juju_application=proxy \
    --label-matcher juju_unit=proxy/1 \
    'rate({filename="myfile"}[1m])'

Would output

rate({filename="myfile",juju_application="proxy",juju_model="lma",juju_model_uuid="12345",juju_unit="proxy/1"}[1m])
Alert Rule validation

Alert rules in either Loki or Prometheus syntax can be validated directly by running:

$ ./cos-tool [-f logql] validate rule_file.yaml [rule_file2.yaml ...]

If it's valid, no output will occur, and the return code will be zero.

If there are validation failures, they will be printed, and you will get a nonzero recdoe.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
pkg
logql/log/logfmt
Adapted from https://github.com/go-logfmt/logfmt/ but []byte as parameter instead Original license is MIT.
Adapted from https://github.com/go-logfmt/logfmt/ but []byte as parameter instead Original license is MIT.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL