Particle Horizon License Extension
| Status | |
|---|---|
| Stability | development |
The pho_license extension loads a signed licence file, validates it locally, and exposes per-component seat counts to proprietary OpenTelemetry Collector components through a shared provider interface.
This extension does not stop the Collector from starting. Invalid, missing, expired, fingerprint-mismatched, signature-invalid, or node-mismatched licences result in an invalid provider state that consuming components can enforce explicitly.
Only the license team’s phocol verification contract is supported. Previously generated legacy licenses that used the older repo-local signing flow will no longer validate and must be reissued.
Configuration
The following settings are available:
file: Path to the licence file to load during Collector startup.inline: Base64-encoded licence JSON content loaded directly from configuration.
Exactly one of file or inline must be set.
Example:
extensions:
pho_license:
file: /etc/otelcol/license.json
service:
extensions: [pho_license]
Inline example:
extensions:
pho_license:
inline: ${env:PHO_LICENSE_B64}
service:
extensions: [pho_license]
License File
The extension expects a JSON licence document with the following shape:
{
"customer_id": "001",
"expires": "1999-12-31T23:59:59Z",
"license_id": "lic-......",
"components": {
"dacs": 10,
"other_component": 0
},
"node_id": {
"arch": "x86_64",
"hostname": "phoads01"
},
"schema_version": 1,
"fingerprint": "sha384:license_fingerprint",
"signature": "base64-signature"
}
Positive values under components are exposed as licensable seat counts through the provider API. 0 means the component is present in the license but cannot start.