Installation
Before You Start
Section titled “Before You Start”- Configure Microsoft Graph permissions (see Azure Permissions).
- Download the collector binary (
ms-teams-agent.binorms-teams-agent.exe) and template config (conf/template_config.yaml) from the latest GitHub release. - Obtain your license file and note its absolute path for
collection_config.license_file.
Collector source repository: microsoft-teams-observability
Prerequisites
Section titled “Prerequisites”- Host with outbound access to:
graph.microsoft.comlogin.microsoftonline.com- your backend endpoint (Dynatrace or Splunk)
- Microsoft tenant and app registration credentials
- Valid license file (
collection_config.license_file)
Build Your Config
Section titled “Build Your Config”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: trueFull settings reference: Configuration
Validate and Test
Section titled “Validate and Test”-
Confirm the binary is available:
Terminal window ./ms-teams-agent.bin --versionTerminal window .\ms-teams-agent.exe --version -
Run one first collection cycle without previous state:
Terminal window ./ms-teams-agent.bin --config ./conf/config.yaml --ignore_stateTerminal window .\ms-teams-agent.exe --config .\conf\config.yaml --ignore_state -
(Optional) debug a specific call:
Terminal window ./ms-teams-agent.bin --config ./conf/config.yaml --call_id "<CALL_ID>"Terminal window .\ms-teams-agent.exe --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)"]
Start the Collector (Production)
Section titled “Start the Collector (Production)”./ms-teams-agent.bin --config ./conf/config.yaml.\ms-teams-agent.exe --config .\conf\config.yamlService Automation (Linux)
Section titled “Service Automation (Linux)”For persistent production execution:
sudo ./ms-teams-agent.bin --config /absolute/path/config.yaml --enable_boot_startSee Service Management for service lifecycle operations.
Verify Ingestion
Section titled “Verify Ingestion”- Agent log file:
logs/pheniAgent_<tenant_id>.log
- Collector state file:
state/state_<tenant_id>.json
Follow logs:
tail -f logs/pheniAgent_<tenant_id>.logGet-Content .\logs\pheniAgent_<tenant_id>.log -WaitThen confirm events in your backend:
- Dynatrace: check logs and app dashboards
- Splunk: check events in the target index