Collector

PHO Licence Extension

The PHO Licence Extension validates the licence used by PHO Collector components and reports licence health through Collector self-telemetry.

PHO Licence Extension
PropertyValue
Component IDpho_license
TypeExtension
AvailabilityPHO Collector distribution

Capabilities

  • Loads a PHO-provided licence from a file or environment-supplied value.
  • Confirms that the licence applies to the current host.
  • Checks component entitlements and configured capacity.
  • Revalidates the licence periodically.
  • Reports licence validity and expiry telemetry.
  • Logs licence state changes and expiry warnings.

Prerequisites

  • A PHO Collector distribution containing pho_license.
  • A valid PHO-provided licence for the current host.
  • Sufficient licensed capacity for every configured PHO receiver instance.
  • Read permission for the Collector service account when a licence file is used.

Configuration

Exactly one licence source must be configured:

  • file: path to a PHO-provided licence file.
  • inline: base64-encoded licence content, normally supplied through an environment variable or secrets manager.
Configuration
SettingRequiredDefaultDescription
fileOne source required—Licence-file path
inlineOne source required—Base64-encoded licence content
reporting_intervalNo1hReload and validation frequency
warning_thresholds_daysNo[30, 14, 7]Expiry-warning thresholds

Warning thresholds must be positive, unique, and in descending order. Use an empty list to disable expiry warnings.

File-based example

extensions:
  pho_license:
    file: /etc/otelcol/license.json
    reporting_interval: 1h
    warning_thresholds_days: [30, 14, 7]

service:
  extensions: [pho_license]

Environment-based example

extensions:
  pho_license:
    inline: ${env:PHO_LICENSE_B64}
    reporting_interval: 1h
    warning_thresholds_days: [30, 14, 7]

service:
  extensions: [pho_license]

Defining the extension does not enable it. It must also appear under service.extensions.

Licence telemetry

Licence metrics are exposed through the Collector’s self-telemetry configuration.

Licence telemetry
MetricTypeDescription
pho.license.validGauge1 when the licence is valid; otherwise 0
pho.license.days_remainingGaugeWhole days remaining before expiry
pho.license.expiry_timestampGaugeLicence expiry as a Unix timestamp
pho.license.check.successCounterSuccessful licence checks
pho.license.check.failureCounterFailed or expired licence checks

Prometheus exporters typically expose dotted metric names with underscores, for example pho_license_valid.

Licence telemetry excludes customer identifiers, licence identifiers, host identity, licence contents, signatures, fingerprints, source paths, and raw validation errors.

groups:
  - name: pho-license
    rules:
      - alert: PHOLicenseInvalid
        expr: pho_license_valid == 0
        for: 5m
        labels:
          severity: critical
        annotations:
          summary: PHO licence is invalid or expired

      - alert: PHOLicenseExpiringSoon
        expr: pho_license_days_remaining <= 30 and pho_license_days_remaining > 0
        for: 15m
        labels:
          severity: warning
        annotations:
          summary: PHO licence expires within 30 days

Operational behaviour

  • The licence is checked during Collector startup.
  • Licence status is refreshed at the configured reporting interval.
  • Expiry warnings are logged when a configured threshold is entered.
  • Repeated checks within the same threshold do not generate duplicate warnings.
  • A missing, invalid, expired, or host-mismatched licence prevents licensed receivers from starting.
  • Each configured receiver instance uses one entitlement from the relevant component capacity.

Troubleshooting

Troubleshooting
SymptomRecommended action
Licence-source configuration is rejectedConfigure exactly one of file or inline
Licence file is missingConfirm the path, mount, and Collector service-account permissions
Licence is reported as invalidConfirm the file has not been altered and was issued for the current host
Licence is expiredContact PHO for a renewed licence
Receiver reports insufficient capacityConfirm the licence includes enough capacity for all configured instances
Licence telemetry is absentConfirm Collector self-telemetry metrics are enabled and exported

Confirm