Skip to content
Cisco AI Defense logo
CiscoAI Security

Telemetry contract — DefenseClaw

Overview

If you build a dashboard, an SLO, or an alert against DefenseClaw signals, you want to trust the names won't change. This page is the promise: every name here is stable until a major-version bump.

Spans

All spans live under the tracer name defenseclaw.

SpanEmitted byParentKey attributes
gateway.requestGuardrail proxy(root)correlation_id, provider, model, direction, strategy, mode, action
guardrail.normalizeNormalize stagegateway.requestsize_bytes, truncated
guardrail.cache_lookupVerdict cachegateway.requesthit, pack_version
guardrail.triageRegex stagegateway.requestrules_evaluated, findings_count
guardrail.judgeLLM judgegateway.requestjudge.provider, judge.model, judge.tokens_in, judge.tokens_out
guardrail.suppressionSuppression stagegateway.requestsuppressions_applied, suppressed_findings
guardrail.regoRego stagegateway.requestpolicy_hash, action, reason
scanner.scanAny scannerscanner-specificscanner, scanner_version, target, severity
admission.decideWatcher(root)scope, name, verdict.severity, action
sandbox.invocationSandbox(root)tool, policy_profile, exit_code, violations
sink.emitAudit bridge(root)sink.name, sink.type, lag_ms, ok

Metrics

All metrics live under the meter name defenseclaw.

Counters

MetricUnitAttributes
defenseclaw_guardrail_verdicts_total1direction, action, mode, severity
defenseclaw_guardrail_findings_total1finding_id, direction, severity
defenseclaw_guardrail_suppressions_total1suppression_id
defenseclaw_admission_decisions_total1scope, action
defenseclaw_sink_events_total1sink_name, ok
defenseclaw_webhook_deliveries_total1webhook_name, status
defenseclaw_sandbox_invocations_total1tool, outcome
defenseclaw_firewall_requests_total1action, rule_id

Histograms

MetricUnitAttributes
defenseclaw_guardrail_stage_duration_secondssstage
defenseclaw_guardrail_request_duration_secondssprovider, direction
defenseclaw_judge_duration_secondssjudge.provider, judge.model
defenseclaw_sink_emit_duration_secondsssink_name
defenseclaw_webhook_delivery_duration_secondsswebhook_name
defenseclaw_rpc_duration_secondssmethod

Gauges

MetricUnitAttributes
defenseclaw_verdict_cache_size1(none)
defenseclaw_verdict_cache_hit_ratio1(rolling window)
defenseclaw_sink_queue_depth1sink_name
defenseclaw_webhook_queue_depth1webhook_name
defenseclaw_sandbox_active_invocations1(none)

Attributes

AttributeValuesPurpose
correlation_idreq_<ULID>Trace-wide correlation
directionprompt|completion|tool_callWhere in the request cycle
strategyregex_only|regex_judge|judge_firstDetection strategy used
modeobserve|action|disabledGuardrail mode
actionallow|warn|block|quarantineEnforcement outcome
severityLOW|MEDIUM|HIGH|CRITICALScanner severity
scopeguardrail|admission|sandbox|firewall|systemSubsystem
pack_version<profile>@<hash>Rule-pack identity
policy_hashhexCompiled policy snapshot

Resource attributes

Every signal carries these resource attributes:

service.name         = "defenseclaw"
service.version      = "<semver>"
service.instance.id  = <uuid minted on boot>
deployment.environment = <user-configured or "unknown">
host.name            = os.Hostname()

SLO-friendly shapes

The histograms expose both _count and _sum for percentile math. Our reference dashboards use _bucket for P95/P99; see the Splunk / Grafana dashboards that ship with the Splunk app.

Related