Configuration and environment reference¶
Configuration precedence is defaults, YAML, then PL2O_ environment variables. Nested YAML dots become double underscores in environment variables. Secrets are environment-only: placing a secret key in YAML is rejected before the exporter starts.
| Key | Type | Default | Environment | Secret | Required | Description | |||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cardinality.max_devices | int | 500 | PL2O_CARDINALITY__MAX_DEVICES | No | Optional | Maximum devices represented by the exporter; must be positive. | |||||||||||||||||||||||||||||||||||||||||||||||||
collectors.lens_active_calls | duration | 1m0s | PL2O_COLLECTORS__LENS_ACTIVE_CALLS | No | Optional | Polling interval for Lens active calls. | |||||||||||||||||||||||||||||||||||||||||||||||||
collectors.lens_cdr | duration | 1h0m0s | PL2O_COLLECTORS__LENS_CDR | No | Optional | Polling interval for Lens CDR logs. | |||||||||||||||||||||||||||||||||||||||||||||||||
collectors.lens_devices | duration | 1m0s | PL2O_COLLECTORS__LENS_DEVICES | No | Optional | Polling interval for Lens device inventory. | |||||||||||||||||||||||||||||||||||||||||||||||||
collectors.lens_firmware | duration | 24h0m0s | PL2O_COLLECTORS__LENS_FIRMWARE | No | Optional | Polling interval for Lens firmware inventory. | |||||||||||||||||||||||||||||||||||||||||||||||||
collectors.phone_config | duration | 5m0s | PL2O_COLLECTORS__PHONE_CONFIG | No | Optional | Polling interval for phone configuration. | |||||||||||||||||||||||||||||||||||||||||||||||||
collectors.phone_lines | duration | 1m0s | PL2O_COLLECTORS__PHONE_LINES | No | Optional | Polling interval for phone lines. | |||||||||||||||||||||||||||||||||||||||||||||||||
collectors.phone_status | duration | 1m0s | PL2O_COLLECTORS__PHONE_STATUS | No | Optional | Polling interval for phone status. | |||||||||||||||||||||||||||||||||||||||||||||||||
collectors.selfobs_internal | duration | 1m0s | PL2O_COLLECTORS__SELFOBS_INTERNAL | No | Optional | Emission interval for exporter self-observability. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.client_id | string | `` | PL2O_LENS__CLIENT_ID | No | Required | OAuth client identifier. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.client_secret | string | `` | PL2O_LENS__CLIENT_SECRET | Yes (environment only) | Required | OAuth client secret; supply only through the environment. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.graphql_url | string | https://api.silica-prod01.io.lens.poly.com/graphql | PL2O_LENS__GRAPHQL_URL | No | Optional | Poly Lens GraphQL endpoint. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.page_size | int | 10 | PL2O_LENS__PAGE_SIZE | No | Optional | Lens page size; validation permits 1 through 5000. Keep the value stable across follow-up pages. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.request_timeout | duration | 30s | PL2O_LENS__REQUEST_TIMEOUT | No | Optional | Timeout for an individual Lens request. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.retry.max_attempts | int | 4 | PL2O_LENS__RETRY__MAX_ATTEMPTS | No | Optional | Maximum Lens request attempts, including the first attempt. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.retry.max_backoff | duration | 30s | PL2O_LENS__RETRY__MAX_BACKOFF | No | Optional | Maximum Lens retry backoff. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.retry.min_backoff | duration | 1s | PL2O_LENS__RETRY__MIN_BACKOFF | No | Optional | Initial Lens retry backoff. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.stream.ack_timeout | duration | 10s | PL2O_LENS__STREAM__ACK_TIMEOUT | No | Optional | Time allowed for a deviceStream acknowledgement. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.stream.enabled | bool | true | PL2O_LENS__STREAM__ENABLED | No | Optional | Enable the named deviceStream GraphQL subscription as an edge-triggered supplement to polling. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.stream.max_backoff | duration | 1m0s | PL2O_LENS__STREAM__MAX_BACKOFF | No | Optional | Maximum deviceStream reconnect backoff. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.stream.min_backoff | duration | 1s | PL2O_LENS__STREAM__MIN_BACKOFF | No | Optional | Initial deviceStream reconnect backoff. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.tenants | []string | [] | PL2O_LENS__TENANTS | No | Optional | Lens tenant IDs to collect. An empty list discovers tenants through the read-only tenants query. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.token_url | string | https://login.lens.poly.com/oauth/token | PL2O_LENS__TOKEN_URL | No | Optional | OAuth token endpoint for Poly Lens. | |||||||||||||||||||||||||||||||||||||||||||||||||
lens.websocket_url | string | wss://api.silica-prod01.io.lens.poly.com/graphql | PL2O_LENS__WEBSOCKET_URL | No | Optional | Poly Lens GraphQL WebSocket endpoint for deviceStream. | |||||||||||||||||||||||||||||||||||||||||||||||||
log.format | string | json | PL2O_LOG__FORMAT | No | Optional | Application log encoding. | |||||||||||||||||||||||||||||||||||||||||||||||||
log.level | string | info | PL2O_LOG__LEVEL | No | Optional | Application log level. | |||||||||||||||||||||||||||||||||||||||||||||||||
otlp.endpoint | string | `` | PL2O_OTLP__ENDPOINT | No | Required | OTLP collector endpoint. | |||||||||||||||||||||||||||||||||||||||||||||||||
otlp.export_interval | duration | 15s | PL2O_OTLP__EXPORT_INTERVAL | No | Optional | OTLP metric export interval. | |||||||||||||||||||||||||||||||||||||||||||||||||
otlp.grafana_cloud.instance_id | string | `` | PL2O_OTLP__GRAFANA_CLOUD__INSTANCE_ID | No | Required | Grafana Cloud instance ID. | |||||||||||||||||||||||||||||||||||||||||||||||||
otlp.grafana_cloud.token | string | `` | PL2O_OTLP__GRAFANA_CLOUD__TOKEN | Yes (environment only) | Required | Grafana Cloud access token; supply only through the environment. | |||||||||||||||||||||||||||||||||||||||||||||||||
otlp.insecure | bool | false | PL2O_OTLP__INSECURE | No | Optional | Allow an insecure OTLP transport. | |||||||||||||||||||||||||||||||||||||||||||||||||
otlp.protocol | string | http | PL2O_OTLP__PROTOCOL | No | Optional | OTLP transport protocol; validation permits http or grpc. | |||||||||||||||||||||||||||||||||||||||||||||||||
phone.auth.from_lens_policy | bool | false | PL2O_PHONE__AUTH__FROM_LENS_POLICY | No | Optional | Use phone credentials from Lens policy where supported. | |||||||||||||||||||||||||||||||||||||||||||||||||
phone.auth.password | string | `` | PL2O_PHONE__AUTH__PASSWORD | Yes (environment only) | Required when phone.enabled is true | Digest authentication password; supply only through the environment when phone collection is enabled. | |||||||||||||||||||||||||||||||||||||||||||||||||
phone.auth.username | string | Polycom | PL2O_PHONE__AUTH__USERNAME | No | Optional | Digest authentication username; Polycom is the default. | |||||||||||||||||||||||||||||||||||||||||||||||||
phone.config_params | []string | [reg.1.address, reg.2.address, reg.1.label, device.syslog.serverName, tcpIpApp.sntp.address, softkey.1.enable] | PL2O_PHONE__CONFIG_PARAMS | No | Optional | Read-only phone configuration parameters requested by the phone config collector. | |||||||||||||||||||||||||||||||||||||||||||||||||
phone.enabled | bool | true | PL2O_PHONE__ENABLED | No | Optional | Enable phone REST collectors. When enabled, phone.auth.password is required. | |||||||||||||||||||||||||||||||||||||||||||||||||
phone.request_timeout | duration | 15s | PL2O_PHONE__REQUEST_TIMEOUT | No | Optional | Timeout for an individual phone REST request. | |||||||||||||||||||||||||||||||||||||||||||||||||
phone.targets | map[string]string | {} | PL2O_PHONE__TARGETS | No | Optional | Static per-device targets. Each phone.tls.ca_filestring`` | PL2O_PHONE__TLS__CA_FILENo | Optional | Optional CA certificate file for phone TLS verification. The certificate CN must match the Lens MAC before credentials are sent. | phone.tls.verify_chainboolfalsePL2O_PHONE__TLS__VERIFY_CHAINNo | Optional | Verify the phone TLS certificate chain. | profiling.pyroscope.applicationstringpolylens2otelPL2O_PROFILING__PYROSCOPE__APPLICATIONNo | Optional | Pyroscope application name. | profiling.pyroscope.basic_auth_passwordstring`` | PL2O_PROFILING__PYROSCOPE__BASIC_AUTH_PASSWORDYes (environment only) | Optional | Pyroscope basic-auth password; supply only through the environment. | profiling.pyroscope.basic_auth_userstring`` | PL2O_PROFILING__PYROSCOPE__BASIC_AUTH_USERNo | Optional | Pyroscope basic-auth username. | profiling.pyroscope.endpointstring`` | PL2O_PROFILING__PYROSCOPE__ENDPOINTNo | Optional | Pyroscope endpoint. Empty leaves profiling endpoint unset. | state.dirstring/var/lib/polylens2otelPL2O_STATE__DIRNo | Required | Directory for durable collector state; required and must be writable by the exporter. | Static phone targets¶
Secret environment variables¶Set required secrets through the process environment, never in YAML: |