Files
Ruslan MikhailovandGitHub 2a491c6706 TraceQL Metrics: Vulture checks (#4886)
* Implement MetricsQueryRange for HTTP client

* Vulture: add not found by metrics metric

* Vulture: add flag for TraceQL metrics query

* Vulture: check TraceQL Metrics

* Vulture: better namings

* [bugfix] Vulture: do not use global logger

* Vulture: add new method to mock

* Vulture: test metrics query

* Vulture: add new flag to jsonnet

* Vulture: add inaccurate metrics metric

* Vulture: advanced metrics check

* Vulture: advanced metrics check (tests)

* Vulture: better logs

* Vulture: disable TraceQL Metrics checks by default

* Vulture: parametrise long write param

* Vulture: reduce default long write

To be sure latest write is less than default ingestion_time_range_slack

* Update changelog

* Vulture: use incorrect_metrics_result label for metrics checks
2025-04-08 15:14:43 +02:00

40 lines
1.5 KiB
Jsonnet

{
local k = import 'ksonnet-util/kausal.libsonnet',
local container = k.core.v1.container,
local containerPort = k.core.v1.containerPort,
local deployment = k.apps.v1.deployment,
local target_name = 'vulture',
local port = 8080,
tempo_vulture_container::
container.new(target_name, $._images.tempo_vulture) +
container.withPorts([
containerPort.new('prom-metrics', port),
]) +
container.withArgs([
'-prometheus-listen-address=:' + port,
'-tempo-push-url=' + $._config.vulture.tempoPushUrl,
'-tempo-query-url=' + $._config.vulture.tempoQueryUrl,
'-tempo-org-id=' + $._config.vulture.tempoOrgId,
'-tempo-retention-duration=' + $._config.vulture.tempoRetentionDuration,
'-tempo-search-backoff-duration=' + $._config.vulture.tempoSearchBackoffDuration,
'-tempo-read-backoff-duration=' + $._config.vulture.tempoReadBackoffDuration,
'-tempo-metrics-backoff-duration=' + $._config.vulture.tempoMetricsBackoffDuration,
'-tempo-write-backoff-duration=' + $._config.vulture.tempoWriteBackoffDuration,
'-tempo-long-write-backoff-duration=' + $._config.vulture.tempoLongWriteBackoffDuration,
]) +
k.util.resourcesRequests('50m', '100Mi') +
k.util.resourcesLimits('100m', '500Mi'),
tempo_vulture_deployment:
deployment.new(target_name,
$._config.vulture.replicas,
[
$.tempo_vulture_container,
],
{
app: target_name,
}),
}