feat(metrics): Add new histograms for chunk latency, results, and sources in AdvisoryAiMetrics
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
feat(telemetry): Record chunk latency, result count, and source count in AdvisoryAiTelemetry fix(endpoint): Include telemetry source count in advisory chunks endpoint response test(metrics): Enhance WebServiceEndpointsTests to validate new metrics for chunk latency, results, and sources refactor(tests): Update test utilities for Deno language analyzer tests chore(tests): Add performance tests for AdvisoryGuardrail with scenarios and blocked phrases docs: Archive Sprint 137 design document for scanner and surface enhancements
This commit is contained in:
@@ -33,6 +33,18 @@ internal sealed class AdvisoryAiTelemetry : IAdvisoryAiTelemetry
|
||||
AdvisoryAiMetrics.ChunkRequestCounter.Add(1,
|
||||
AdvisoryAiMetrics.BuildChunkRequestTags(tenant, result, telemetry.Truncated, telemetry.CacheHit));
|
||||
|
||||
AdvisoryAiMetrics.ChunkLatencyHistogram.Record(
|
||||
telemetry.Duration.TotalMilliseconds,
|
||||
AdvisoryAiMetrics.BuildLatencyTags(tenant, result, telemetry.Truncated, telemetry.CacheHit));
|
||||
|
||||
AdvisoryAiMetrics.ChunkResultHistogram.Record(
|
||||
telemetry.ChunkCount,
|
||||
AdvisoryAiMetrics.BuildChunkResultTags(tenant, result, telemetry.Truncated));
|
||||
|
||||
AdvisoryAiMetrics.ChunkSourceHistogram.Record(
|
||||
telemetry.SourceCount,
|
||||
AdvisoryAiMetrics.BuildSourceTags(tenant, result));
|
||||
|
||||
if (telemetry.CacheHit)
|
||||
{
|
||||
AdvisoryAiMetrics.ChunkCacheHitCounter.Add(1,
|
||||
@@ -56,13 +68,15 @@ internal sealed class AdvisoryAiTelemetry : IAdvisoryAiTelemetry
|
||||
}
|
||||
|
||||
_logger.LogInformation(
|
||||
"Advisory chunk request for tenant {Tenant} key {Key} returned {Chunks} chunks across {Sources} sources (truncated: {Truncated}, cacheHit: {CacheHit}, durationMs: {Duration}).",
|
||||
"Advisory chunk request for tenant {Tenant} key {Key} returned {Chunks} chunks across {Sources} sources (observationsLoaded: {Observations}, truncated: {Truncated}, cacheHit: {CacheHit}, guardrailBlocks: {GuardrailBlocks}, durationMs: {Duration}).",
|
||||
tenant,
|
||||
telemetry.AdvisoryKey,
|
||||
telemetry.ChunkCount,
|
||||
telemetry.SourceCount,
|
||||
telemetry.ObservationCount,
|
||||
telemetry.Truncated,
|
||||
telemetry.CacheHit,
|
||||
telemetry.TotalGuardrailBlocks,
|
||||
telemetry.Duration.TotalMilliseconds.ToString("F2", CultureInfo.InvariantCulture));
|
||||
}
|
||||
|
||||
@@ -118,6 +132,7 @@ internal sealed record AdvisoryAiChunkRequestTelemetry(
|
||||
bool Truncated,
|
||||
bool CacheHit,
|
||||
int ObservationCount,
|
||||
int SourceCount,
|
||||
int ChunkCount,
|
||||
TimeSpan Duration,
|
||||
IReadOnlyDictionary<AdvisoryChunkGuardrailReason, int> GuardrailCounts)
|
||||
|
||||
Reference in New Issue
Block a user