bcquality/custom/knowledge/telemetry/default-telemetryscope-to-extensionpublisher.md
Michael Dieringer d4e351f333 Adopt 11 community rules into custom always-on layer
Promotes rules that are already published in community/ to custom/knowledge/,
so they load at every session start instead of only on keyword relevance.
Each file carries extends: pointing back to its community source.

Passed Immanuel's four-test Categorical Imperative validation on 2026-08-07.
2026-08-07 08:04:12 +02:00

2 KiB

bc-version domain keywords technologies countries application-area extends
all
telemetry
telemetry
session-logmessage
telemetryscope
application-insights
extensionpublisher
ingestion-cost
al
w1
all
community/telemetry/default-telemetryscope-to-extensionpublisher.md

Default TelemetryScope to ExtensionPublisher, not All

Contributions welcome — open a PR to refine or extend this article.

Description

The TelemetryScope parameter of Session.LogMessage (and LogError) controls where a custom telemetry signal is routed, not just whether it is emitted. TelemetryScope::ExtensionPublisher sends the signal only to the extension publisher's own Application Insights resource. TelemetryScope::All sends it to both the publisher's resource and the customer's environment-level Application Insights resource. The distinction is easy to get wrong because both values compile and both "emit telemetry" — but All silently adds to the customer's ingestion volume and cost. Promoted to always-on: CURABIS builds telemetry-based health checks across customer environments (Wareco, Allnet, Guardique), so a scope mistake here doesn't just cost the customer — it pollutes the very signal CURABIS's own tooling reads.

Best Practice

Default to TelemetryScope::ExtensionPublisher for diagnostic telemetry that only the publisher acts on. Reserve TelemetryScope::All for signals the customer's own administrators are expected to monitor and act on (for example, a business event surfaced to their environment telemetry). Treat the choice as a deliberate routing decision per signal, not a copy-paste default.

Anti Pattern

Emitting all custom telemetry with TelemetryScope::All "to be safe." This pushes the publisher's internal diagnostics into every customer's Application Insights, inflating their ingestion cost and burying their own signals in noise — a footgun a code reviewer can catch by flagging All on any signal the customer would not act on.