open-telemetry / detector-digitalocean
OpenTelemetry resource detector for DigitalOcean
Requires
- php: ^8.1
- ext-json: *
- fig/http-message-util: ^1.1.5
- open-telemetry/api: ^1.0
- open-telemetry/sdk: ^1.0
- open-telemetry/sem-conv: ^1.32
- psr/http-client-implementation: ^1.0
- psr/http-factory-implementation: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.54
- mikey179/vfsstream: ^1.6.11
- nyholm/psr7: *
- phan/phan: ^5.4
- phpstan/phpstan: ^1.10.13
- phpstan/phpstan-phpunit: ^1.3
- phpunit/phpunit: ^10 || ^11
- psalm/plugin-phpunit: ^0.19.2
- vimeo/psalm: 6.4.0
- zalas/phpunit-globals: ^4.0
README
This is a read-only subtree split of https://github.com/open-telemetry/opentelemetry-php-contrib.
OpenTelemetry DigitalOcean resource detector
Please see https://opentelemetry.io/docs/languages/php/resources/#custom-resource-detectors for installation and configuration.
Overview
This package provides an OpenTelemetry ResourceDetector
which will detect
resource attributes for DigitalOcean Droplets.
The following OpenTelemetry resource attributes will be detected:
Resource attribute | Droplet |
---|---|
cloud.account.id |
auth1 (scope account:read ) |
cloud.availability_zone |
not applicable to DigitalOcean |
cloud.platform |
auto |
cloud.provider |
auto |
cloud.region |
auto |
cloud.resource.id |
auto |
host.arch |
static (amd64 ) |
host.id |
auto |
host.image.id |
auth1 (scope droplet:read ) |
host.image.name |
auth1 (scope droplet:read ) |
host.image.version |
not applicable to DigitalOcean |
host.ip |
omitted2 |
host.mac |
omitted2 |
host.name |
auto |
host.type |
auth1 (scope droplet:read ) |
os.name 3 |
auth1 (scope droplet:read ) |
os.type 3 |
static (linux ) |
Configuration
By default, all installed resource detectors are used, and the attributes they detect will be added to the default resources associated with traces, metrics, and logs.
You can also provide a list of specific detectors via the OTEL_PHP_DETECTORS
config (environment variable or php.ini
setting):
OTEL_PHP_DETECTORS="host,process,digitalocean"
Footnotes
-
If a DigitalOcean API personal access token, with the listed scope, is available to PHP via the
DIGITALOCEAN_ACCESS_TOKEN
environment variable, this resource detector will attempt to read the corresponding values from the API. This has no impact on the other attributes. ↩ ↩2 ↩3 ↩4 ↩5 -
These attributes are marked as
Opt-In
within the OpenTelemetry semantic conventions, meaning they should not be included unless the user configures the instrumentation to do so. It is a future todo for this library to support configuration. ↩ ↩2 -
These attributes should be combined with a resource detector that includes all of the
os
resource attributes, but if these attributes are known, they will be provided. ↩ ↩2