Diagnostics
Configure CLI diagnostic levels to send session telemetry to IPMHub
Introduction
IPM 0.14.0 introduces configurable diagnostic levels. When enabled, the CLI sends telemetry about the current session to the IPMHub API. This information is used for troubleshooting, support, and analytics.
Diagnostics are disabled by default (none). No data is sent unless you opt in.
Diagnostics Levels
Three levels are available:
| Level | Description |
|---|---|
none |
No session data is sent. This is the default. |
minimal |
Sends basic information about the CLI run. |
full |
Sends detailed contextual information about the run environment. |
Minimal
The minimal level sends the following at the start and end of each CLI session:
- CLI version
- Command executed
- Culture / locale
- Exit code
- OS platform, version, and architecture
- .NET runtime specs
Full
The full level sends everything in minimal, plus:
- CI environment details — detected automatically if the CLI is run from Azure DevOps, GitHub Actions, GitLab CI, Jenkins, or TeamCity
- Git working copy information — if the current directory is inside a Git repository
- Custom metadata — up to 10 key/value pairs provided via
IPM_META_{NAME}environment variables (e.g.IPM_META_ENVIRONMENT=production) - CLI log — included if the exit code is not
0 - Stack trace — included if an unhandled exception occurred
Configuration
Using the --diagnostics Parameter
Pass --diagnostics to any command:
ipm sync --diagnostics full
ipm add -p mycompany/my-module --diagnostics minimal
Using the Environment Variable
Set IPMHUBCLI_DIAGNOSTICS to none, minimal, or full:
Linux/macOS:
export IPMHUBCLI_DIAGNOSTICS=full
ipm sync
Windows:
set IPMHUBCLI_DIAGNOSTICS=full
ipm sync
Priority
The effective diagnostics level is determined in this order (highest wins):
--diagnosticsparameterIPMHUBCLI_DIAGNOSTICSenvironment variable- Diagnostics level configured on the client secret (when using non-interactive authentication)
- Default:
none
Custom Metadata Fields
When using full diagnostics, you can attach up to 10 custom metadata fields to your session by setting environment variables named IPM_META_{NAME}:
Linux/macOS:
export IPM_META_ENVIRONMENT=production
export IPM_META_TEAM=platform
ipm sync --diagnostics full
Windows:
set IPM_META_ENVIRONMENT=production
set IPM_META_TEAM=platform
ipm sync --diagnostics full
This is useful when running the CLI in multiple environments or pipelines and you want to distinguish sessions in the IPMHub portal.
Client Secrets and Diagnostics
When authenticating with a client secret, the diagnostics level configured on the client secret in the IPMHub portal is used by default. You can still override this with the --diagnostics parameter or IPMHUBCLI_DIAGNOSTICS environment variable.
This allows organizations to enforce a minimum diagnostics level for automated pipelines through the client secret configuration, while still allowing per-run overrides.