12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: {{ template "loki-stack.fullname" . }}-test
- labels:
- app: {{ template "loki-stack.name" . }}
- chart: {{ template "loki-stack.chart" . }}
- release: {{ .Release.Name }}
- heritage: {{ .Release.Service }}
- data:
- test.sh: |
- #!/usr/bin/env bash
- LOKI_URI="http://${LOKI_SERVICE}:${LOKI_PORT}"
- function setup() {
- apk add -u curl jq
- until (curl -s ${LOKI_URI}/api/prom/label/app/values | jq -e '.values[] | select(. == "loki")'); do
- sleep 1
- done
- }
- @test "Has labels" {
- curl -s ${LOKI_URI}/api/prom/label | \
- jq -e '.values[] | select(. == "app")'
- }
- @test "Query log entry" {
- curl -sG ${LOKI_URI}/api/prom/query?limit=10 --data-urlencode 'query={app="loki"}' | \
- jq -e '.streams[].entries | length >= 1'
- }
- @test "Push log entry legacy" {
- local timestamp=$(date -Iseconds -u | sed 's/UTC/.000000000+00:00/')
- local data=$(jq -n --arg timestamp "${timestamp}" '{"streams": [{"labels": "{app=\"loki-test\"}", "entries": [{"ts": $timestamp, "line": "foobar"}]}]}')
- curl -s -X POST -H "Content-Type: application/json" ${LOKI_URI}/api/prom/push -d "${data}"
- curl -sG ${LOKI_URI}/api/prom/query?limit=1 --data-urlencode 'query={app="loki-test"}' | \
- jq -e '.streams[].entries[].line == "foobar"'
- }
- @test "Push log entry" {
- local timestamp=$(date +%s000000000)
- local data=$(jq -n --arg timestamp "${timestamp}" '{"streams": [{"stream": {"app": "loki-test"}, "values": [[$timestamp, "foobar"]]}]}')
- curl -s -X POST -H "Content-Type: application/json" ${LOKI_URI}/loki/api/v1/push -d "${data}"
- curl -sG ${LOKI_URI}/api/prom/query?limit=1 --data-urlencode 'query={app="loki-test"}' | \
- jq -e '.streams[].entries[].line == "foobar"'
- }
|