53 lines
1.8 KiB
YAML
53 lines
1.8 KiB
YAML
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"'
|
|
}
|
|
|