Skip to content

Getting Started

MS Teams Observability is a two-part solution: a Collector that pulls Teams telemetry from Microsoft Graph, and backend integrations that store and visualise that data in Dynatrace or Splunk.

graph LR
    A["Microsoft Teams \(Graph API\)"] -->|polling| B["ms-teams-agent \(Collector\)"]
    B --> C["Dynatrace \(Grail + App\)"]
    B --> D["Splunk \(HEC + App\)"]
  1. The Collector authenticates to Microsoft Graph using an Azure app registration and polls Teams telemetry on a configurable interval.
  2. It enriches and normalises the data, then exports it to one or more backends.
  3. The backend application (Dynatrace or Splunk) renders the data in operational dashboards.

The collector retrieves and exports the following event families:

Event familyContent
MSTeams_CallRecords_CallMetadataCall-level summary: type, health, duration
MSTeams_CallRecords_StreamDetailsStream-level quality: RTT, jitter, packet loss
MSTeams_CallRecords_PSTNPSTN telephony calls
MSTeams_CallRecords_DirectRoutingSIP / Direct Routing calls
MSTeams_CallRecords_AutoAttendantAuto attendant usage
MSTeams_CallRecords_CallQueueCall queue behaviour
MSTeams_ServiceAnnouncementMicrosoft published incidents and advisories
MSTeams_CollectionHealthCollector operational health

See Metrics Dictionary for a full field reference.

The Dynatrace application supports two modes:

  • Demo mode — uses built-in sample data. No collector required. Useful for evaluation and demonstration.
  • Live mode — uses real tenant data collected by the collector. Requires a valid license. See License.

Demo and Live mode are specific to the Dynatrace application. The Splunk backend does not have a demo mode and displays data as soon as the collector starts sending it.

BackendApplication includedNotes
DynatraceYes — Grail + dedicated appFull-featured integration with dashboards
SplunkYes — Splunk appHEC-based ingestion with dedicated app