Skip to content

Collector Installation

  • Microsoft 365 tenant with Teams calling activity
  • Microsoft Entra app registration with Graph permissions (see Azure Permissions)
  • Admin consent granted for CallRecords.Read.All, Reports.Read.All, ServiceHealth.Read.All
  • Collector host with outbound access to graph.microsoft.com, login.microsoftonline.com, and your backend endpoint
  • Valid license file (see License)
  • Download collector binary from the latest release

Start from template and set at least:

microsoft_authentication:
graph:
tenant_id: "<tenant-id>"
client_id: "<client-id>"
client_secret: "<secret>" # or client_certificate_path
license:
filepath: /etc/ms-teams-observability-agent/license.json
output:
dynatrace:
enabled: true
dynatrace_tenant_id: "<env>"
dynatrace_api_token: "dt0c01..."
collection_config:
interval_collection_minutes: 10
max_call_duration_hours: 5
features:
calls_collection:
enabled: true

Full settings reference: Configuration Reference

  1. Validate file structure and business rules:

    Terminal window
    ms-teams-agent validate --config ./config.yaml
  2. Test Graph auth and exporters:

    Terminal window
    ms-teams-agent test-connection --config ./config.yaml
  3. Run one dry cycle:

    Terminal window
    ms-teams-agent run --config ./config.yaml --dry-run

✅ Success criteria:

  • validate returns no error
  • test-connection confirms Graph authentication and backend connectivity
  • dry-run completes one full cycle without errors

❌ If this fails:

flowchart TD
    A[Build config.yaml] --> B[validate]
    B -->|Errors| C[Fix YAML / credentials]
    C --> B
    B -->|OK| D[test-connection]
    D -->|Fail| E[Fix auth or network]
    E --> D
    D -->|OK| F["run --dry-run"]
    F --> G["run --config (production)"]
Terminal window
ms-teams-agent run --config ./config.yaml

For persistent production execution, install as a systemd service:

Terminal window
sudo ms-teams-agent service enable-service --config /absolute/path/config.yaml
sudo ms-teams-agent service status

See Service Management for Linux service operation.

  • Agent logs:
Terminal window
tail -f logs/agent.log
  • State snapshot:
Terminal window
ms-teams-agent state show
  • Backend verification:
    • Dynatrace: check app overview for real tenant data
    • Splunk: check ms_teams index receives events

✅ Success criteria:

  • Collector logs show successful collection cycles
  • ms-teams-agent state show reports valid state
  • Backend receives at least one MSTeams_* record

❌ If this fails: