fix: 限定 Prometheus 目标与发现规则
This commit is contained in:
@@ -21,6 +21,7 @@ import {
|
||||
|
||||
import type { ObservabilityConfig, ObservabilityTarget } from "./types";
|
||||
import { fieldManager } from "./types";
|
||||
import { metricsEnabledForTarget, metricsTargetDisposition } from "./metrics-target";
|
||||
|
||||
export function tempoService(observability: ObservabilityConfig, target: ObservabilityTarget): string {
|
||||
return `apiVersion: v1
|
||||
@@ -102,11 +103,13 @@ PY
|
||||
}
|
||||
|
||||
export function statusScript(observability: ObservabilityConfig, target: ObservabilityTarget, full: boolean, generateValidationTrace = false): string {
|
||||
const enabledEndpoints = observability.metricsBackend.enabled
|
||||
const metricsEnabled = metricsEnabledForTarget(observability, target);
|
||||
const metricsDisposition = metricsTargetDisposition(observability, target);
|
||||
const enabledEndpoints = metricsEnabled
|
||||
? observability.probes.statusEndpoints
|
||||
: observability.probes.statusEndpoints.filter((endpoint) => endpoint.service !== observability.metricsBackend.serviceName);
|
||||
const endpointsJson = JSON.stringify(enabledEndpoints);
|
||||
const metricsCaptures = observability.metricsBackend.enabled
|
||||
const metricsCaptures = metricsEnabled
|
||||
? `capture_json metrics_deployments kubectl -n ${shQuote(target.namespace)} get deployment ${shQuote(observability.metricsBackend.deploymentName)} -o json\ncapture_json metrics_services kubectl -n ${shQuote(target.namespace)} get service ${shQuote(observability.metricsBackend.serviceName)} -o json\ncapture_json metrics_pods kubectl -n ${shQuote(target.namespace)} get pods -l ${shQuote(`app.kubernetes.io/name=${observability.metricsBackend.deploymentName}`)} -o json`
|
||||
: "";
|
||||
return `
|
||||
@@ -325,12 +328,12 @@ payload = {
|
||||
"services": compact_section("services"),
|
||||
"pods": compact_section("pods"),
|
||||
"events": compact_section("events"),
|
||||
"metricsDeployments": compact_section("metrics_deployments") if ${observability.metricsBackend.enabled ? "True" : "False"} else None,
|
||||
"metricsServices": compact_section("metrics_services") if ${observability.metricsBackend.enabled ? "True" : "False"} else None,
|
||||
"metricsPods": compact_section("metrics_pods") if ${observability.metricsBackend.enabled ? "True" : "False"} else None,
|
||||
"metricsDeployments": compact_section("metrics_deployments") if ${metricsEnabled ? "True" : "False"} else None,
|
||||
"metricsServices": compact_section("metrics_services") if ${metricsEnabled ? "True" : "False"} else None,
|
||||
"metricsPods": compact_section("metrics_pods") if ${metricsEnabled ? "True" : "False"} else None,
|
||||
},
|
||||
"probes": probe_results,
|
||||
"warnings": ([{"code": "prometheus-not-ready", "detail": item} for item in metrics_probes if item.get("ok") is not True] if ${observability.metricsBackend.enabled ? "True" : "False"} else [{"code": "prometheus-disabled"}]),
|
||||
"warnings": ([{"code": "prometheus-not-ready", "detail": item} for item in metrics_probes if item.get("ok") is not True] if ${metricsEnabled ? "True" : "False"} else [{"code": "prometheus-${metricsDisposition}"}]),
|
||||
"validationTrace": validation_trace,
|
||||
}
|
||||
print(json.dumps(payload, ensure_ascii=False, indent=2 if ${full ? "True" : "False"} else None))
|
||||
|
||||
Reference in New Issue
Block a user