Commit Graph

272 Commits

Author SHA1 Message Date
jason plumb 3f4698a536
Ensure done before checking success to help troubleshoot timeout issues (#4833)
* ensure done before checking success to help troubleshoot timeout issues

* add done check to testDefaultRetryPolicy method as well.

* ensure isDone() before other assertions
2022-10-13 13:13:22 -05:00
jack-berg bd0cf78c39
Ensure GlobalLoggerProvider is set once (#4804)
* Ensure GlobalLoggerProvider is set once

* Add GlobalLoggerProviderTest

* PR feedback
2022-10-03 13:47:36 -05:00
Bruno Baptista c37dada000
Add support for new system property otel.sdk.disabled (#4810)
* Add support for new system property otel.sdk.disabled

* address review comments
2022-10-03 11:51:57 -05:00
jack-berg a1cf20d1c5
Rename LogProcessor to LogRecordProcessor (#4772) 2022-09-26 11:02:49 -05:00
jack-berg 647ed91c15
Rename LogData to LogRecordData (#4774)
* Rename LogData to LogRecordData

* spotless
2022-09-26 10:30:59 -05:00
jack-berg 9b17be3114
Rename LogExporter to LogRecordExporter (#4773) 2022-09-26 09:57:30 -05:00
jack-berg f7317c6e8d
Split out logs API (#4764) 2022-09-22 13:23:52 -05:00
jack-berg 6209109e0a
Change LogEmitter to Logger, LogEmitterProvider to LoggerProvider (#4721) 2022-09-16 13:41:30 -05:00
Mateusz Rzeszutek 6c11793bd2
Add experimental ConditionalResourceProvider interface (#4731)
* Add experimental ConditionalResourceProvider interface

* Add tests
2022-09-08 13:10:43 -05:00
jack-berg b979ea1427
Allow logs to be mutated by LogProcessor (#4643)
* Allow logs to be mutated by LogProcessor

* wip

* Improve test coverage
2022-08-11 15:52:22 -05:00
jack-berg 77be2e0136
Break out :exporters:common module (#4575)
* Break out :exporters:common module

* Comment out readme links

* spot
2022-08-08 08:28:24 -05:00
Mateusz Rzeszutek 91bd17e09b
Add AutoConfigurationCustomizer#addPropertiesCustomizer() extension p… (#4608)
* Add AutoConfigurationCustomizer#addPropertiesCustomizer() extension point

* jApiCmp

* Update sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java

Co-authored-by: jack-berg <34418638+jack-berg@users.noreply.github.com>

* since

Co-authored-by: jack-berg <34418638+jack-berg@users.noreply.github.com>
2022-08-07 15:57:33 -05:00
jack-berg 35680960cb
Fix autoconfigure documentation (#4658) 2022-08-07 15:55:36 -05:00
jack-berg 21abfa2b57
Add ConfigurableLogExporterProvider (#4636) 2022-07-28 15:04:45 -05:00
Mateusz Rzeszutek 467a275825
Add ordering to autoconfigure SPIs (#4609)
* Add ordering to autoconfigure SPIs

* jApiCmp

* comments
2022-07-27 17:37:02 -05:00
jack-berg a8086498b1
Add TestLogData, remove public LogDataImpl and LogDataBuilder from log SDK (#4635)
* Add TestLogData, remove public LogDataImpl and LogDataBuilder from log sdk

* pr comment
2022-07-27 13:15:25 -05:00
jack-berg 7a2a5b379d
Update autoconfigure docs for multiple exporters (#4619) 2022-07-20 09:39:48 -05:00
jack-berg d2a8304b9b
Otlp exporter default aggregation (#4557)
* Add default aggregation selector option to OTLP metric exporters

* change compose to with
2022-07-05 10:21:04 -05:00
Mateusz Rzeszutek 4c0cbba5d3
Add hyphen normalization to ConfigProperties (#4564) 2022-06-30 09:26:29 -05:00
jack-berg 0860b3884b
MetricReader and MetricExporter can determine default aggregation by instrument (#4472)
* MetricReader and MetricExporter can determine default aggregation by instrument

* Add since annotations
2022-06-28 15:39:26 -05:00
Fabio Massimo Ercoli bc8f721458
Handle non-String system properties (#4543) (#4544)
* Test non-string properties (#4543)

* Handle non-String system properties (#4543)

* Small cleanups

Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
2022-06-22 10:02:48 +09:00
Anuraag Agrawal 852e755eeb
Use OkHttpGrpcExporter unless upstream Channel provided by user (#4538)
* Use OkHttp-based gRPC exporter unless setChannel is called.
2022-06-17 09:45:03 +09:00
jack-berg 7d80a99846
Add experimental option to disable autoconfigured opentelemetry SDK (#4489)
* Add experimental option to disable autoconfigured opentelemetry SDK

* Add AutoConfiguredOpenTelemetrySdk#isSdkEnabled()

* Remove isSdkEnabled()
2022-06-06 11:23:14 -05:00
jason plumb 77f5a174d4
Add default getters to ConfigProperties (#4500)
* add some methods to ConfigProperties to help with defaulting.

* wire up default methods

* javadoc

* bots hate underscores

* leverage primitives to eliminate nullability.

* remove null check (call doesn't return null per javadoc)

* address PR comments.

* move internal method out of public interface

* roll back fallback

* rename util class

* use assertj

* spotless

* coverage

* Update sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/ConfigPropertiesTest.java

Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>

* static

* spot(less)

Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
2022-06-02 15:48:48 -07:00
jason plumb 83bfb84d14
Migrate to assertj (#4512)
* migrate from junit/jupiter assertions to assertj in a few remaining places.

* reorder
2022-06-02 13:38:46 -07:00
jack-berg 92bd65970e
Merge otlp exporters (#4499)
* Merge otlp http trace and metric exporters into :exporters:otlp:all

* Merge otlp http exporter into :exporters:otlp:logs

* Artifact descriptions
2022-05-27 19:23:41 -07:00
jack-berg 33d2c22260
Implement general attribute limits (#4495)
* Implement general attribute limits

* Spotless
2022-05-26 09:25:14 -05:00
Donnerbart 2e5598e492
Add setter for MeterProvider to JaegerGrpcSpanExporterBuilder (#4487)
* Add setter for MeterProvider to JaegerGrpcSpanExporterBuilder

* Make exporter name configurable for ExporterMetrics
2022-05-24 12:13:48 -07:00
wallezhang 3ed74b6bbc
feat: `otel.metrics.exporter` setting support multiple values (#4466)
* feat: `otel.metrics.exporter` setting support multiple values

* refactor: Refactor metric reader configuration function
2022-05-20 15:01:05 -05:00
jack-berg 81821296fc
Move ConfigurableMetricExporterProvider to autoconfigure-spi (#4478) 2022-05-18 19:17:45 -07:00
jack-berg d355bf56df
Fix OTEL_EXPORTER_OTLP_CLIENT_KEY docs (#4474) 2022-05-17 17:18:32 -07:00
jack-berg b7b6a75637
Drop reference to OTEL_EXPORTER_LOGGING_PREFIX (#4462) 2022-05-12 15:46:19 -05:00
jack-berg d490f5b5e7
Add AggregationTemporalitySelector functional interface (#4438) 2022-05-06 10:03:14 -05:00
jack-berg 605f40b940
Rename MetricReader#flush() to forceFlush() (#4439) 2022-05-06 08:26:22 -05:00
jack-berg 2ec053e0fd
Remove old option for specifying temporality (#4392)
* Remove old option for specifying temporality

* Fix test
2022-04-20 10:11:25 -05:00
jack-berg 45e278a934
Mark metrics components as stable (#4375) 2022-04-13 11:44:17 +09:00
jack-berg 44afb133bd
Add changelog entry for 1.13.0 release (#4355)
* Add changelog entry for 1.13.0

* PR feedback
2022-04-08 13:35:24 -05:00
jack-berg e7d5a97f88
OTLP metric exporter accepts aggregation temporality function (#4340)
* OTLP metric exporter accepts aggregation temporality function

* Spotless
2022-04-08 07:54:04 -05:00
jack-berg 0b94400914
Another round of log suppression (#4342)
* Another round of log suppression

* Suppress logs from HttpServerPipelineConfigurator
2022-04-07 11:00:42 -05:00
jack-berg cb50ec9ce7
Enable OTLP metric export by default in autoconfigure (#4330) 2022-04-04 10:47:43 -05:00
jack-berg 423e1a2c54
Refactor MetricReader registration (#4320) 2022-03-31 10:13:17 -05:00
jack-berg 725ce32db3
Make setMinimumCollectionInterval package private (#4310)
* Make setMinimumCollectionInterval package private, centralize experimental utilities

* Default minimum collection interval to zero
2022-03-31 09:49:53 -05:00
Anuraag Agrawal fab0131184
Update OTLP to 0.15 (#4305) 2022-03-25 10:08:38 -05:00
jack-berg 21a61e5894
Change MetricExporter getPreferredTemporality to accept InstrumentType (#4288) 2022-03-24 11:25:50 -05:00
jack-berg c4ea1c155e
Refactor view API, make AttributesProcessor internal (#4277)
* Switch View and ViewBuilder to classes

* Make AttributesProcessor an empty interface, move content to AbstractAttributesProcessor

* Drop io.opentelemetry.sdk.metrics.view package
2022-03-23 11:01:54 -05:00
jack-berg 322097ad4b
Hide exemplars (#4276)
* Make exemplar package internal

* Add method to reflectively set exemplar filter on SdkMeterProvderBuilder
2022-03-22 10:39:37 -05:00
jack-berg 2c695a34f8
Simplify MetricReader (#4268)
* Simplify MetricReader

* Tighten up PR

* Restore some methods / classes and deprecate

* Revert "Restore some methods / classes and deprecate"

This reverts commit fee90e5da7.
2022-03-22 10:10:15 -05:00
Trask Stalnaker 559d05adf5
Add markdown link check (#4287)
* Add markdown link check

* Fix links

* Now detects anchor links too!

* Reword comment
2022-03-22 14:11:34 +09:00
Brian Yan e54e7ac4dc
feat:add the shortcut of removeif in ResourceBuilder (#4286)
* fix:add an ending period to form notes

* feat:add the shortcut of removeif in ResourceBuilder

* fix:fix the errors of check

* feat:run two gradlew task to achieve check

* fix:fix format violations

* feat:remove extra function and modify the unit test

* fix: fix format violations

* feat:format code and modify unit test

* feat:make unit test specification

* feat:cleanup for normalize
2022-03-22 13:03:55 +09:00
jkamon a355c347b8
Allow client certificate (#4194)
* Allow client certificate

* Allow client certificate - changes signature and add parameters

* Allow client certificate - rename chain to certificate

* Allow client certificate - fix first set of comments

* Allow client certificate - comments

* Allow client certificate - compile fix

* Allow client certificate - tests

* Allow client certificate - rename privateKeyChainPem to certificatePem

* Allow client certificate - remove incorrect test

* Allow client certificate - removed unused function

* Allow client certificate - spotlessApply

* Allow client certificate - match expected and thrown error messages

* Allow client certificate - spotlessApply

* Allow client certificate - from spec project it was requested to remove logs entries

* Allow client certificate - match expected and thrown error messages

* Allow client certificate - improve test coverage

* Allow client certificate - document also LOG version of env variables
2022-03-21 17:19:17 +09:00
jack-berg 59a6061dc5
Deprecate InstrumentationLibraryInfo (#4256)
* Deprecate InstrumentationLibraryInfo

* API diff
2022-03-14 14:45:10 -05:00
Anuraag Agrawal 26c04299d3
Make MetricData factories internal (#4257) 2022-03-11 16:30:13 +09:00
Anuraag Agrawal 048a0c8d14
Migrate PointData to interface (#4242) 2022-03-09 11:16:48 +09:00
wallezhang 3a78a9030a
feat: Add enabled resource providers configuration (#4231)
* feat: Add enabled resource providers configuration

* style: Code style changes by running spotlessApply

* test: Add unit test for specific resource providers in both configurations

* test: Add unit test for only specific resource providers in enabled configuration
2022-03-09 09:44:05 +09:00
Anuraag Agrawal 22c7a8e10b
Cleanups to View configuration (#4225) 2022-03-04 10:46:55 +09:00
Anuraag Agrawal a6107d5590
Remove type-specific SumData (#4216)
* Remove type-specific SumData

* scare
2022-03-02 08:40:21 +09:00
jack-berg 9456aeea26
Experimental support for disabling resource keys (#4169)
* Experimental support for disabling resource keys

* Rename property
2022-02-17 14:19:27 -06:00
John Watson f7c52e181e
Update OTLP protobufs to v0.13.0-alpha (#4170)
and add documentation on how to update that dependency.
2022-02-12 10:33:38 -08:00
jack-berg 3f5778e647
Do not register periodic metric reader when exporter is null (#4166) 2022-02-09 14:25:27 -06:00
jack-berg b9074f1d8b
Drop deprecations (#4158)
* Drop OBSERVABLE_SUM and OBSERVABLE_UP_DOWN_SUM

* Drop SdkMeterProviderConfigurer
2022-02-08 14:17:06 +09:00
jack-berg eb92539f94
Logs customizer (#4148) 2022-02-04 10:11:56 -06:00
jack-berg 4392f52e1c
Metrics customizer (#4127)
* Use noop meter provider if no readers registered

* Extend AutoConfigurationCustomizer with metrics customizers

* Switch from inline to instance level mocks

* Deprecate SdkMeterProviderConfigurer
2022-02-03 12:26:04 -06:00
jack-berg bd29e1f2ef
Deprecate SdkTracerProviderConfigurer (#4136)
* Deprecate SdkTracerProviderConfigurer

* Update sdk-extensions/autoconfigure/src/testFullConfig/java/io/opentelemetry/sdk/autoconfigure/TestTracerProviderConfigurer.java

Co-authored-by: John Watson <jkwatson@gmail.com>
2022-02-03 14:19:28 +09:00
Anuraag Agrawal 47f7c38ef5
Enable loggers in all tests via slf4j. (#4126)
* Route all test jul logging through slf4j.

* Cleanup and more suppressions
2022-02-02 14:43:25 +09:00
jack-berg 4a015cc794
Set MeterProvider on BatchLogProcessor (#4138) 2022-02-02 08:06:07 +09:00
Ryan Rupp 586ac11803
Make SPI factories instantiate implementations lazily (#4059)
* Make SPI factories instantiate implementations lazily

Previously, this would load all SPI factories and then eagerly instantiate each implementation. This would potentially result in implementations that would get instantiated even if they didn't end up getting used. An example was if the AWS contrib jar was included, this would result in an AwsXrayRemoteSampler being instantiated eagerly despite the configuration not using it. This could then result in errors or unused resources depending on the implementation i.e. in the AwsXrayRemoteSampler example it spawns a thread and makes a network request.

This change transitions the factories so that they only construct the implementation objects if the configuration specifically asks for it. Note the SPI factories themselves must still must be eagerly loaded to determine which factory names are available. This change applies to all auto-configuration areas following this pattern: Samplers, Metric Exporters, Text Map Propagators and Span Exporters.

* Now that instantiating implementations is on-demand (only if used), allow any exceptions to propagate

* format fix

* Change NamedSpiManager from interface to class

Co-authored-by: jack-berg <jberg@newrelic.com>
2022-01-31 15:49:58 -06:00
wallezhang 97d2115dc4
refactor: adjust tracer and meter provider customizer execution order (#4129)
* refactor: adjust tracer and meter provider customizer execution order

* refactor: Modify tracer provider customizer flow

* style: Format code using spotlessApply
2022-01-31 11:56:00 -06:00
jack-berg 87f788a3b4
Cleanup retry configuration (#4131) 2022-01-31 11:30:39 -06:00
Anuraag Agrawal 3cabcc7e45
Improve behavior of some tests (#4123) 2022-01-26 08:17:21 -08:00
jack-berg 0ef60f8233
Use noop meter provider if no readers registered (#4120)
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
2022-01-26 08:08:31 -08:00
Anuraag Agrawal 044cadb47e
Reorganize internal export code. (#4111)
* Reorganize internal export code.

* Cleanups
2022-01-26 14:39:58 +09:00
Anuraag Agrawal 53df4aa8a1
Fix flaky FullConfigTest (#4115) 2022-01-25 07:50:04 -08:00
Ryan Dens 1313265692
BatchSpanProcessor metrics (#4112)
* ♻️ refactor TracerProviderConfiguration.configureBatchSpanProcessor to have MeterProvider provided to it

* 🐛 set meterProvider on BatchSpanProcessorBuilder

* 👌 chain usage of builder APIs where possible

Co-authored-by: jack-berg <34418638+jack-berg@users.noreply.github.com>

* 🎨 formatting

Co-authored-by: jack-berg <34418638+jack-berg@users.noreply.github.com>
2022-01-24 18:27:14 -08:00
jack-berg 8bbb0e25da
Enable reflective setting of retry policy for OkHttpGrpcExporter (#4097)
* Enable reflective setting of retry policy for OkHttpGrpcExporter

* Drop deprecated method

* Add test coverage
2022-01-21 11:07:00 +09:00
Eugene R 3518c98c45
Annotate AutoValue classes as Immutable (#3875)
* annotate AutoValue classes as Immutable

* Remove @Immutable on internal classes

Co-authored-by: jack-berg <jberg@newrelic.com>
2022-01-14 14:53:14 -06:00
Roberto Cortez 7b570f53ce
Provide a way to register / skip the shutdown hook in AutoConfiguredOpenTelemetrySdkBuilder (#4072) 2022-01-11 09:46:53 -08:00
Roberto Cortez 07a2d2eb28
Customizer for SdkTracerProviderBuilder (#4004) 2022-01-08 11:18:38 +09:00
Anuraag Agrawal c28797ae89
Use configured classloader for resource SPI. (#4064) 2022-01-07 12:44:44 +09:00
Anuraag Agrawal 429afa1c99
Add toString to SDK trace components and print autoconfigured SDK (#4047)
* Add toString to SDK trace components and print autoconfigured SDK

* Clean

* Tweak logging message
2022-01-07 10:55:46 +09:00
Anuraag Agrawal dfb4a74ac5
Update errorprone (#4048) 2022-01-06 11:33:00 +09:00
jack-berg 10f5efa14d
Add log autoconfigure support (#4015)
* Add log autoconfigure support

* Support log logging exporter via autoconfigure

* Add unit test
2022-01-05 08:21:58 -08:00
Kunshuai Zhu 44dccd6c33
Fix the problem that README.md failed to display [javadoc-image] (#4039) 2022-01-01 09:39:45 -08:00
jack-berg 6f755cc812
Add http/protobuf retry (#3983)
* Add http/protobuf retry

* PR feedback
2021-12-17 12:35:29 +09:00
jack-berg 2fb3d633a0
Remove deprecations from autoconfigure module (#3923) 2021-12-17 09:12:39 +09:00
Anuraag Agrawal 1e9fb21c64
Remove deprecated metrics APIs (#3990) 2021-12-15 11:51:32 +09:00
jack-berg 53030b7266
Configurable temporality (#3960)
* Allow configuration of preferred temporality in LoggingMetricExporter and OtlpJsonLoggingMetricExporter

* Make InMemoryMetricReader preferred temporality configurable

* Add create() methods to LoggingSpanExporter, LoggingMetricExporter, and SystemOutLogExporter, deprecate public constructors
2021-12-08 13:58:59 +09:00
Anuraag Agrawal 8e04fbf0b8
Migrate most testsets to test suites. (#3953) 2021-12-07 08:37:15 +09:00
Anuraag Agrawal 737a5e2b26
Deprecate GlobalMeterProvider (#3948) 2021-12-03 08:43:49 +09:00
Anuraag Agrawal b1651a18cf
Rename .observe to .record (#3949)
* Rename .observe to .record

* Apply deprecation
2021-12-03 08:37:22 +09:00
Anuraag Agrawal ae3fe66031
Implement retry for OkHttpGrpcExporter (#3936)
* Implement retry for OkHttpGrpcExporter

* Fix merge

* Smallest is millis

* Cleanup

* More retryable
2021-12-01 09:34:43 +09:00
Anuraag Agrawal 55ff1dc533
Promote metrics API to stable (#3919)
* Add MeterProvider to OpenTelemetry API

* Spot

* Set

* Move NoopMeter to package private

* Merge metrics API code into API package

* Finish

* Fix / clean

* Drift

* Update extensions/noop-api/src/main/java/io/opentelemetry/extension/noopapi/NoopOpenTelemetry.java

Co-authored-by: John Watson <jkwatson@gmail.com>

* Spot

Co-authored-by: John Watson <jkwatson@gmail.com>
2021-11-24 08:39:55 +09:00
Anuraag Agrawal 6933de18e5
Don't use global meter provider for trace export (#3901) 2021-11-19 15:06:22 +09:00
jack-berg 65e7145e9c
OTLP metric temporality configuration (#3847)
* Add ability to configure preferred temporality to OTLP grpc and http metric exporters

* Make OTLP metric preferred temporality configurable

* Make temporality configuration case insensitive
2021-11-12 11:03:20 +09:00
Anuraag Agrawal 72bfd18aba
Allow specifying SPI classloader during autoconfiguraiton. (#3849) 2021-11-11 09:38:29 +09:00
jack-berg 4b7e50928f
Configure periodic metric reader interval with otel.metric.export.interval (#3840) 2021-11-09 13:59:33 +09:00
jack-berg a1a45d2657
Autoconfigure experimental OTLP retry (#3791)
* Add retry policy class and wire into autoconfigure

* Wire up otlp retry for DefaultGrpcExporter

* Add documentation to autoconfigure readme

* Add more tests

* Move delegate accessor to :exporters:otlp:common

* Use jackson for json serialization

* PR feedback
2021-11-09 10:06:47 +09:00
Anuraag Agrawal 872c86cf8a
Migrate jaeger exporter to use GrpcExporter (#3800)
* Migrate jaeger exporter to use GrpcExporter

* Cleanup

* Update integration test

* Fix
2021-10-29 12:01:41 +09:00
Anuraag Agrawal 13c838acfe
Fix merge conflict (#3798) 2021-10-28 10:13:57 +09:00
Anuraag Agrawal 1e073fcff2
Add an auto-configuration builder. (#3753)
* Add an auto-configuration builder.

* Test

* Builder

* More

* Revamp

* Customizer only customizes

* Pass config to customizers

* More specific name

* Cleanup

* Cleanup

* SPI test

* Clean

* Clean

* Clean

* Shutdown once instead of flush and shutdown for simple

* Clean

* Cleanups

* Cleanup
2021-10-28 08:41:14 +09:00
jack-berg c4c2e6c9db
Align SdkMeterProvider with SdkTracerProvider (#3792)
* Align SdkMeterProvider with SdkTracerProvider

* Use noop meter provider when metric exporter is none
2021-10-27 10:03:08 -07:00