We do not actually require an async http client, so use psr/http-client-implementation instead.
We depend on the psr/http-client interface, so require it (which has a side-effect of un-breaking
the symfony http client which is frequently auto-installed by php-http/discovery's plugin)
- sdk BC was not being loaded at all in the sdk package (only in the monorepo), so add it to autoload->files
- fixing api/common BC layer (removing .php and fixing one of the FQCNs)
- apply TC review feedback to move Globals to top-level.
it was suggested to move Instrumentation into its own package, but I chose instead to just move that dir
up to the top level of API
- added a BC layer to alias the moved classes
- added some more examples
allow the existing metric exporter to be created from env vars, by creating a factory
and registering it against 'console'. Now, OTEL_METRICS_EXPORTER=console will create
a metrics provider with console output. Note that it lives in contrib/otlp, since it
uses the existing otlp converters.
To enable registering non-SDK resource detectors within the SDK, extend the SDK Registry.
Detectors will be looked up by name and applied as part of 'all', or as part of a list
of detectors
New Relic now fully supports OTLP ingestion, and having proprietary exporters is no longer their strategy. The proprietary exporters have been marked as abandoned in packagist, and suggest exporter-otlp as a replacement.
the example is very old, does not work, and it doesn't look like the capability
is in the spec these days. Remove the code so that it doesn't cause confusion.
Introduce spec-compliant ResourceInfo::merge, and deprecate our current implementation.
When merging resources, later (updating) keys should override existing keys, per spec.
Reorganise detectors so that environment has highest priority (per spec, OTEL_SERVICE_NAME should be the highest priority built-in way of setting service name)
Adding the experimental telemetry.auto.version attribute, if the auto-instrumentation extension is installed.
Implement OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE, which controls the temporality of meters when creating from environment vars.
Add OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION to variables, although we do not yet have anything that uses it.
use docker compose 'env_file' to include all .env file vars in container env
make the default rector action dry-run, which allows developers to inspect code changes
before applying them (and therefore giving the option to disable new rules before they
are applied to WIP).
Adding some make targets which will install composer dependencies with the lowest
package versions. This highlights some small issues with older versions, so bump up
the minimums of a few dev dependencies.
Adding more make targets:
- all-lowest (run all checks after updating with --prefer-lowest)
- all-checks (run all checks without first running a composer update)
- update-lowest (update dependencies to lowest installable versions)
Quieten unit test output (the previous testdox output is available via `make test-verbose`)
* update semantic conventions to v1.19
* updating semconv readme
* dropping attribute values
I can't find any usage of the various AttributeValues being used, and other SIGs
no longer generate them, so removing them
* removing semconv usage from API
allow deprecations of moved/removed attributes so that we don't break things across different
semconv versions (similar to how java does it, except I moved them into a file which is
imported
* implement bridge api
* adding logs memory exporter
* clarify bridge api not for developers
* adding logger provider builder
* review feedback
* removing Bridge and documenting what a bridge is
the otlp exporters (logs, metrics, traces) will fail to export if there is no protobuf implementation (which we have
just made optional, to allow users to choose between extension and native). Add a check to
the constructors which will throw a runtime exception.
If creating the exporter directly, it will be uncaught. If using a factory, it will report a
warning and return a no-op exporter.
* Make google/protobuf an optional dependency
* Update the README with more information on installing protobuf implementation
* Add some extra documentation in the OTLP exporter library
* Update proto/otel/README.md
This change instructs explode to extract at most 2 parts.
Given an example value of
```
OTEL_EXPORTER_OTLP_HEADERS=Authorization=Basic bla64=
```
The config parser would have created the elements, where only two are required. The trailing `=` in base64 headers would then have been effectively discarded, leading to invalid configuration.
sdk-contrib is abandoned in packagist, because we publish the packages individually
and at independent versions. for the same reason, do not gitsplit tags, only main
as we do the tagging in the read-only repos now