Loki

  • By Canonical Observability
Channel Revision Published Runs on
latest/stable 128 24 Apr 2024
Ubuntu 20.04
latest/candidate 129 24 Apr 2024
Ubuntu 20.04
latest/beta 136 24 Apr 2024
Ubuntu 20.04
latest/edge 140 26 Apr 2024
Ubuntu 20.04
1.0/stable 104 12 Dec 2023
Ubuntu 20.04
1.0/candidate 104 22 Nov 2023
Ubuntu 20.04
1.0/beta 104 22 Nov 2023
Ubuntu 20.04
1.0/edge 104 22 Nov 2023
Ubuntu 20.04
juju deploy loki-k8s --channel beta
Show information

Platform:

Loki HTTP API

Charmed Loki exposes its HTTP API over port 3100.

Example 1 - Get Loki version:

/loki/api/v1/status/buildinfo exposes the build information in a JSON object. The fields are version, revision, branch, buildDate, buildUser, and goVersion.

$ loki_ip=$(juju status loki-k8s/0 | grep "loki-k8s/0" | awk '{print $4}')

$ curl http://$loki_ip:3100/loki/api/v1/status/buildinfo | jq
{
  "version": "2.4.1",
  "revision": "f61a4d261",
  "branch": "HEAD",
  "buildUser": "root@39a6e600b2df",
  "buildDate": "2021-11-08T13:09:51Z",
  "goVersion": ""
}

Example 2 - Send log lines to Loki with curl:

/loki/api/v1/push is the endpoint used to send log entries to Loki. The default behavior is for the POST body to be a snappy-compressed protobuf message. Alternatively, if the Content-Type header is set to application/json, a JSON post body can be sent in the following format:

loki_ip=$(juju status loki-k8s/0 | grep "loki-k8s/0" | awk '{print $4}')

curl -v \
  -H "Content-Type: application/json" \
  -XPOST -s "http://$loki_ip:3100/loki/api/v1/push" \
  --data-raw '{"streams": [{ "stream": { "foo": "bar2" }, "values": [ [ "1570818238000000000", "fizzbuzz" ] ] }]}'

Example 3 - Send logs entries to Loki with Promtail:

Promtail is an agent which ships the contents of local logs to Loki. It is usually deployed to every machine that has applications needed to be monitored.

It primarily:

  • Discovers targets
  • Attaches labels to log streams
  • Pushes them to the Loki instance.

Currently, Promtail can tail logs from two sources: local log files and the systemd journal (on AMD64 machines only).

To set up a Promtail instance to work with Loki Charmed Operator please refer to Configuring Promtail documentation. Anyway the most important part is the clients section in Promtail config file, for instance:

clients:
  - url: http://<LOKI_ADDRESS>:3100/loki/api/v1/push