Skip to content

Installation

  1. Configure Microsoft Graph permissions (see Azure Permissions).
  2. Download the collector binary (ms-teams-agent.bin or ms-teams-agent.exe) and template config (conf/template_config.yaml) from the latest GitHub release.
  3. Obtain your license file and note its absolute path for collection_config.license_file.

Collector source repository: microsoft-teams-observability

  • Host with outbound access to:
    • graph.microsoft.com
    • login.microsoftonline.com
    • your backend endpoint (Dynatrace or Splunk)
  • Microsoft tenant and app registration credentials
  • Valid license file (collection_config.license_file)

Start from the template and set at least:

microsoft_authentication:
microsoft_tenant_id: "<tenant_id>"
microsoft_client_id: "<client_id>"
microsoft_client_secret: "<client_secret>"
microsoft_scope: "https://graph.microsoft.com/.default"
microsoft_grant_type: "client_credentials"
output:
dynatrace:
enabled: true
dynatrace_tenant_id: "<tenant_id>"
dynatrace_api_token: "<token>"
splunk:
enabled: false
console:
enabled: false
collection_config:
logging_services: ["dynatrace"]
microsoft_max_call_duration_hours: 5
interval_collection_minutes: 1
logfile_log_level: "INFO"
license_file: "/absolute/path/license.lic"
features:
ms_teams_calls_collection:
enabled: true

Full settings reference: Configuration

  1. Confirm the binary is available:

    Terminal window
    ./ms-teams-agent.bin --version
  2. Run one first collection cycle without previous state:

    Terminal window
    ./ms-teams-agent.bin --config ./conf/config.yaml --ignore_state
  3. (Optional) debug a specific call:

    Terminal window
    ./ms-teams-agent.bin --config ./conf/config.yaml --call_id "<CALL_ID>"
flowchart TD
    A[Build config.yaml] --> B[--version]
    B -->|Errors| C[Fix binary path or download]
    C --> B
    B -->|OK| D[--ignore_state]
    D -->|Fail| E[Fix auth, license, or network]
    E --> D
    D -->|OK| F["./ms-teams-agent --config (production loop)"]
Terminal window
./ms-teams-agent.bin --config ./conf/config.yaml

For persistent production execution:

Terminal window
sudo ./ms-teams-agent.bin --config /absolute/path/config.yaml --enable_boot_start

See Service Management for service lifecycle operations.

  • Agent log file:
    • logs/pheniAgent_<tenant_id>.log
  • Collector state file:
    • state/state_<tenant_id>.json

Follow logs:

Terminal window
tail -f logs/pheniAgent_<tenant_id>.log

Then confirm events in your backend:

  • Dynatrace: check logs and app dashboards
  • Splunk: check events in the target index