* Bump stable-v1 and experimental-metrics vers
* Prepare stable-v1 for version v1.11.0
* Prepare experimental-metrics for version v0.32.3
* Update changelog for release
* Retract v0.32.2 of otlpmetric{http,grpc}
* Add the cache type
* Add cache unit tests
* Test cache concurrency
* Add the instrumentCache
* Use the instrumentCache to deduplicate creation
* Drop unique check from addAggregator
* Fix aggregatorCache* docs
* Update cachedAggregator and aggregator method docs
* Remove unnecessary type constraint
* Remove unused errAlreadyRegistered
* Rename to not shadow imports
* Add changes to changelog
* Fix changelog English
* Store resolvers in the meter instead of caches
* Test all Aggregator[N] impls are comparable
* Fix lint
* Add documentation that Aggregators need to be comparable
* Update sdk/metric/internal/aggregator.go
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update sdk/metric/instrument.go
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update sdk/metric/instrument.go
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update sdk/metric/internal/aggregator_test.go
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Fix pipeline_test.go use of newInstrumentCache
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Use default view if inst matches no other
Fix#3224
* Test default view applied if no match
* Add changes to changelog
* Remove unneeded views len check in WithReader
* Do not return agg if adding err-ed
* Revert "Do not return agg if adding err-ed"
This reverts commit b56efb06a7.
* update bucket default bounds to match the specification
* add changelog entry
* test custom boundaries with valid histogram
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add views field to pipeline
Redundant maps tracking readers to views and readers to pipelines exist
in the pipelineRegistry. Unify these maps by tracing views in pipelines.
* Rename newPipelineRegistries->newPipelineRegistry
* Add Reader as field to pipeline
* Replace createAggregators with resolver facilitator
* Replace create agg funcs with inserter facilitator
* Correct documentation
* Replace pipelineRegistry with []pipeline type
* Rename newPipelineRegistry->newPipelines
* Fix pipeline_registry_test
* Flatten isMonotonic into only use
* Update FIXME into TODO
* Rename instrument provider resolver field to resolve
* Fix comment English
* Fix drop aggregator detection
* Bump golang.org/x/sys/unix
Fix#3234
Address GO-2022-0493 by upgrading golang.org/x/sys/unix from
v0.0.0-20210423185535-09eb48e85fd7 to
v0.0.0-20220919091848-fb04ddd9f9c8.
* Add changes to changelog
* Flush pending telemetry when ForceFlush called
* Test flush of periodic reader
* Flush pending telemetry on Shutdown
* Fix things
* Rename pHolder to p
* Add testing for Shutdown
* Fix doc for collect method
* Fix collectAndExport doc
* Fix collectAndExport English
* Remove stdoutmetric example expected output
* Add changes to changelog
* Revert inadvertent change to golangci conf
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* update the metric mod version to latest
* update additional go.mods
* Unify the Fixed section of Unreleased
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <codingalias@gmail.com>
* Remove Old SDK and dependent code on that SDK (#2802)
* Remove prometheus example code
* Remove prometheus exporter code
* Remove stdoutmetric code
* Remove sdk/metric/* packages
* Remove opencensus example code
* Remove otlpmetric exporter code
* Remove OpenCensus bridge code
* go mod tidy
* Remove empty modules
* Remove the number and aggregator from the metric SDK (#2840)
* Add MeterProvider/meter structure to new SDK (#2822)
* Remove prometheus example code
* Remove prometheus exporter code
* Remove stdoutmetric code
* Remove sdk/metric/* packages
* Remove opencensus example code
* Remove otlpmetric exporter code
* Remove OpenCensus bridge code
* go mod tidy
* Remove empty modules
* Add MeterProvider/meter structure to new SDK
* Add vanity imports
* go mod tidy
* Add MeterProvider Flush/Shutdown required by spec
* Cast nil ptr instead of alloc for comp time check
* Apply suggestions from code review
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Apply suggested Shutdown comment
* Apply fixes from feedback
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add sdk/metric/view structure (#2838)
* Add sdk/metric/view package structure
* Vanity import
* Define the reader interface, and create a manual reader (#2885)
* Add the manual reader to the sdk.
* Incoperate feedback from PR.
* additional PR comments
* Fix lint
* Fixes for PR.
* Unexport ManualReader
fix a few comments
* Refactor reader testing into a harness (#2910)
* Refactor reader testing into a harness
* Run lint
* Removed merge leftover
* Use opentracing bridge from main
* go mod tidy
* crosslink
* Remove Prometheus exporter from README for now
* Run make with new tool set
* Replace testReaderHarness with testify suite (#2915)
* Add the periodic reader (#2909)
* Add the metric.Exporter interface
* Move the reader errors to reader.go
* Update Reader.Collect docs
Remove TODO being addressed in this PR and restate purpose of method.
* Initial draft of the periodic reader
* Refer to correct config in periodic reader opts
* Refactor reader testing into a harness
* Move wait group handling out of run
* Refactor ticker creation to allow testing
* Honor export timeout in run
* Fix wait group wait bug
* Add periodic reader tests
* Fix lint
* Update periodic reader comments
* Add concurrency test for readers
* Simplify the ticker stop deferral
* Only register once
* Restrict build of metric sdk to Go>1.16
* Clean up ShutdownBeforeRegister test
* Test duplicate Reader registration (#2914)
The specification requires the SDK prevent duplicate registrations for
readers. This adds a test for that and fixes this for the manualReader.
* Add WithReader and WithResource Options (#2905)
* Add WithReader and WithResource Options
* Run lint
* Update WithReader fn signature based on feedback
* crosslink
* Remove zero-len check in unify
* Restrict build to Go > 1.16
* Add bench test for reader collect methods (#2922)
* Unify reader implementations (#2923)
* Unify reader implementations
Use an atomic.Value to manage concurrency without a lock.
* Lint
* Merge main into new sdk main (#2925)
* Use already enabled revive linter and add depguard (#2883)
* Refactor golangci-lint conf
Order settings alphabetically.
* Add revive settings to golangci conf
* Check blank imports
* Check bool-literal-in-expr
* Check constant-logical-expr
* Check context-as-argument
* Check context-key-type
* Check deep-exit
* Check defer
* Check dot-imports
* Check duplicated-imports
* Check early-return
* Check empty-block
* Check empty-lines
* Check error-naming
* Check error-return
* Check error-strings
* Check errorf
* Stop ignoring context first arg in tests
* Check exported comments
* Check flag-parameter
* Check identical branches
* Check if-return
* Check increment-decrement
* Check indent-error-flow
* Check deny list of go imports
* Check import shadowing
* Check package comments
* Check range
* Check range val in closure
* Check range val address
* Check redefines builtin id
* Check string-format
* Check struct tag
* Check superfluous else
* Check time equal
* Check var naming
* Check var declaration
* Check unconditional recursion
* Check unexported return
* Check unhandled errors
* Check unnecessary stmt
* Check unnecessary break
* Check waitgroup by value
* Exclude deep-exit check in example*_test.go files
* Move the minimum version to go 1.17 (#2917)
* Move the minimum version to go 1.17
* Update readme and changelog
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Make lint
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Add view to metrics. (#2926)
* WIP views public
* Add attribute filters and comments.
* Fixes for lint
* Address comments
* Fix lint
* Changed view matching to expand end
Removed the dscriptor, it was moved in previous patch
* change wildcards into regex
* Update comments
* address comments.
* Address more PR comments
* renamed WithDescription to WithSetDescription.
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Implement MeterProvider's Meter method (#2945)
* Implement stubbed meter create method
* Rename return value to avoid comment
* Encapsulate meterRegistry tests with identifying name
* Run lint fix
* Comment meterRegistry being concurrent safe
* Remove ordered meter tracking in the meterRegistry
* Test range completeness instead of order
* Remove provider field from meter
* Initialize MeterProvider readers field for new (#2948)
* Introduce Temporality, WithTemporality Reader options and InstrumentKind (#2949)
* Introduce Temporality and InstrumentKind
Because Temporality is the responsibility of the Reader additional methods
are added to the Reader interface. And New options are created to
configure the temporality selector.
* Addresses comments, and adds tests.
* Fix addition PR comment
* Add aggregation package and reader/view options (#2958)
* Add aggregation pkg and options
* Update documentation for the aggregation pkg
* Test Aggregation.Err
* Fix aggregation pkg comment
* Add WithAggregation comment
* Add default aggregation
* Rename WithAggregation and add AggregationSelector
* Fix DefaultAggregationSelector use and decl
* Replace Aggregation struct with iface
* Add Copy method to hist and fix Err method
* Additional test for monotonic bounds
* Add aggregation method to Reader
* Use AggregationSelector instead of inline func type
* Switch RecordMinMax to NoMinMax
* Deep copy and validate in options
* Test the DefaultAggregationSelector
* nolint for import-shadow of method
* Fix Default aggregation comment
* Test the explicit bucket histogram deep copy
* Update temporality selector option (#2967)
Match the WithAggregationSelector option pattern: define a
TemporalitySelector type, export the DefaultTemporalitySelector
function, and name the option with a Selector suffix.
* Minor NewMeterProvider and producer docs fix (#2983)
* Add internal package structure for aggregation (#2954)
* Add the aggtor package
* Restrict to Go 1.18
* Add missing build block to view_test.go
* Comment Aggregator iface
* Use Go 1.18 as the default ci version
* Update Aggregator iface from feedback
* Accept hist conf
* Flatten aggtor into just internal
* Add Cycler interface
Separate the duties of aggregation and maintaining state across
aggregation periods.
* Remove build flags for doc.go
* Clarify Cycler documentation
* Remove aggregation fold logic
* Rename Number to Atomic
* Add tests for Atomic impls
* Remove unneeded Atomic implementation
Add back when filling in structures.
* Fix article in Float64 docs
* Remove Atomic
This is an implementation detail.
* Add aggregator_example_test
* Fix hist example
* Add issue numbers to all TODO and FIXME
* Remove zero parameter comment
* Combine the cycler into the aggregators
* Remove the drop aggregator
* Fix lint
* Use attribute.Set instead of ptr to it
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Merge main into new_sdk/main (#2996)
* Use already enabled revive linter and add depguard (#2883)
* Refactor golangci-lint conf
Order settings alphabetically.
* Add revive settings to golangci conf
* Check blank imports
* Check bool-literal-in-expr
* Check constant-logical-expr
* Check context-as-argument
* Check context-key-type
* Check deep-exit
* Check defer
* Check dot-imports
* Check duplicated-imports
* Check early-return
* Check empty-block
* Check empty-lines
* Check error-naming
* Check error-return
* Check error-strings
* Check errorf
* Stop ignoring context first arg in tests
* Check exported comments
* Check flag-parameter
* Check identical branches
* Check if-return
* Check increment-decrement
* Check indent-error-flow
* Check deny list of go imports
* Check import shadowing
* Check package comments
* Check range
* Check range val in closure
* Check range val address
* Check redefines builtin id
* Check string-format
* Check struct tag
* Check superfluous else
* Check time equal
* Check var naming
* Check var declaration
* Check unconditional recursion
* Check unexported return
* Check unhandled errors
* Check unnecessary stmt
* Check unnecessary break
* Check waitgroup by value
* Exclude deep-exit check in example*_test.go files
* Move the minimum version to go 1.17 (#2917)
* Move the minimum version to go 1.17
* Update readme and changelog
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Use ByteSliceToString from golang.org/x/sys/unix (#2924)
Use unix.ByteSliceToString to convert Utsname []byte fields to strings.
This also allows to drop the charsToString helper which serves the same
purpose and matches ByteSliceToString's implementation.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* docs: fix typo (#2935)
* add timeout to grpc connection in otel-collector example (#2939)
* Closes: #2951 (#2952)
This PR updates the example listed in the getting started doc
so that it will compile without error. It also makes this
example consistent with the code found in
https://github.com/open-telemetry/opentelemetry-go/blob/main/example/fib/main.go
Signed-off-by: Brad Topol <btopol@us.ibm.com>
* fix data-model link (#2955)
* Bump go.opentelemetry.io/proto/otlp from v0.16.0 to v0.18.0 (#2960)
* Move to using Instrumentation Scope (#2976)
* Move to using Instrumentation Scope
* Use type alias, not definition
* Add a changelog entry
* docs(website_docs): fix exporting_data.md and getting-started.md toc (#2930)
* docs(website_docs): fix toc
* docs(website_docs): fix toc
* update exporting_data.md for rerun check-links
* update exporting_data.md for rerun check-links
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update getting-started.md (#2984)
grammar edit for line 175 of readme
* fix typo (#2986)
* fix typo
* spell fix
* typo fix (#2991)
* added traces.txt to gitignore for fib (#2993)
* Deprecate Library and move all uses to Scope (#2977)
* Deprecate Library and move all uses to Scope
* Add PR number to changelog
* Don't change signatures in stable modules
* Revert some changes
* Rename internal struct names
* A bit more renaming
* Update sdk/trace/span.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update based on feedback
* Revert change
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Feat/bridge support text map (#2911)
* feat: support TextMap
* doc: add comment
* test: support for ot.TextMap
* Retrieve lost code due to merge
* fix: retrieve lost code due to merge. test: support for ot.HTTPHeaders
* go mod tidy
* Optimized code style, add changelog
* doc: Restore comments
* wip: add test cases
* test: fix args error
* delete empty line
* Fix syntax and changelog errors
* Fix formatting errors
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add a release template (#2863)
* Add a release template
* Update the about field
Co-authored-by: Damien Mathieu <42@dmathieu.com>
* Fix linting Issues
* Add ignore for template link
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Fix merge of CHANGELOG.md
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: ttoad <qq530901331@outlook.com>
* Add structure to the export data. (#2961)
* Add structure to the export data.
* Fix comments.
* Apply suggestions from code review
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Address PR comments.
* Updated optional historgram parameters.
* Address PR comments.
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Use export.Aggregation instead of internal.Aggregation (#3007)
* Use export.Aggregation instead of internal
* Return an export.Aggregation instead of a slice
* Use attribute Sets instead of KeyValues for export data (#3012)
Attribute Sets have stronger guarantees about the uniqueness of their
keys and more functionality. We already ensure attributes are stored as
Sets by the aggregator which will produce these data types. Instead of
converting to a KeyValue slice, keep the data as a Set.
Any user of the data can always call the ToSlice method to use the data
as a slice of KeyValues.
* Change Instrument Library to Instrument Scope (#3016)
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* move temporality to export/temporality (#3017)
* move temporality to export/temporality
* fix lint errors
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Rename Package sdk/metric/export into sdk/metric/metricdata (#3014)
* fix unrelated changes
* fix quote code
* fix format
* rebase pr
* rebase pr
* change usage of export to metricdata
* Add metricdatatest package (#3025)
* Use export.Aggregation instead of internal
* Return an export.Aggregation instead of a slice
* Use attribute Sets instead of KeyValues for export data
Attribute Sets have stronger guarantees about the uniqueness of their
keys and more functionality. We already ensure attributes are stored as
Sets by the aggregator which will produce these data types. Instead of
converting to a KeyValue slice, keep the data as a Set.
Any user of the data can always call the ToSlice method to use the data
as a slice of KeyValues.
* Add export data type comparison testing API
* Add Aggregation and Value comparison funcs
* Move export testing to own pkg
* Move exporttest to metricdatatest
* Add licenses headers to files missing them
* Use metricdata instead of export
Fix merge of new_sdk/main
* Rename exporttest pkg to metricdatatest
* Fix spelling errors
* Fix lint issues
* Use testing pkg to error directly
Include Helper() method calls to correct the call-stack.
* Fix CompareAggregations
Set equal to true by default
* Generalize assertions and unexport equal checks
* Abstract assert tests
* Rename all exp var to r
* Test AssertAggregationsEqual
* Comment why Value and Aggregation are separate
* Test AssertValuesEqual
* Revert changes to metricdata/temporality.go
* Expand pkg doc sentence
* Add license header to assertion.go
* Update assertion docs
* Consolidate comparisons funcs into one file
* Consolidate and fix docs
* Consolidate assertion.go
* Consolidate comparisons.go
* make lint
* Test with relatively static times
* Update sdk/metric/metricdata/metricdatatest/comparisons.go
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Drop equal return from comparison funcs
* Refactor AssertEqual
* Remove reasN from testDatatype func params
* Consolidate AssertEqual type conversions
* Fix assertion error message
* Add assertion failure tests
* Remove unneeded strings join
* Make comment include a possessive
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Adds a pipeline for creating reader's output (#3026)
* Adds a pipeline for creating reader's output
* fix metricdata move
* fix lint
* Apply suggestions from code review
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Address PR comments
* Added resource test
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Use generic Sum, Gauge, and DataPoint value removing Value, Int64, and Float64 from metricdata (#3036)
* Use generic DataPoint value
* Fix assertion_fail_test.go
* Declare Sum and DataPoints type in pipeline_test
* Add MatchInstrumentKind filter for Views. (#3037)
* Move InstrumentKind to view, Add view filter
* remove TODO
* Add the Option function, fix lint
* use local var over 0
* Fix missing undefinedInstrumnet
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Change View Attribute Filter to detect if not set. (#3039)
* Change View Attribute Filter to detect if not set.
* Fix PR comments.
* Rework test for no filter logic.
* Add implementation of last-value aggregator (#3008)
* Add last-value aggregator
* Add test of last-value reset of unseen attrs
* Add benchmark
* Use generic DataPoint value
* Fix assertion_fail_test.go
* Fix tests
* Remove unused test increment values
* View.New() miss InstrumentKind check (#3043)
Signed-off-by: liupengfei <lpfvip2008@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add delta/cumulative histogram implementation (#3045)
* Add delta/cumulative histogram implementation
* Add histogram unit tests
* Fix histValues Aggregate
Store the new buckets value back to the values map.
Ensure min/max are measured values, not zero values.
* Fix lint
* Add benchmarks
* Test histograms internal functionality
* Fix lint
* Add TODO to look at memory use for cumu hist
* Update sdk/metric/internal/histogram.go
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* use TemporalitySelector (#3050)
Signed-off-by: Petrie <lpfvip2008@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add implementation of Sum aggregators (#3000)
* Implement the sum aggregators
* Add unit tests for delta/cumulative sums
* Add benchmarks
* Merge sum tests into one
* Remove unused start time from cumulative sum
* Refactor benchmark tests
Split benchmarks for the Aggregations and Aggregate methods so
computational resource use can be determined.
* goimports
* Move timestamp out of lock
* Refactor testing
* Fix spelling mistake
* Name param of expectFunc
* Reset delta sum to zero instead of delete
* Revert to deleting unused attr sets
* Refactor testing to allow use across other aggs
* Add TODO to bound cumulative sum mem usage
* Fix misspelling
* Unify aggregator benchmark code in aggregator_test
* Use generic DataPoint value
* Fix assertion_fail_test.go
* Use generic metricdata types
* Fix tests
* Fix benchmarks
* Fix lint
* Update sum documentation
* Remove leftover encapsulating test run
* Use t.Cleanup to mock time
* Consolidate expecter logic into funcs
* Move errNegVal closer to use
* Run the agg test
* Add tests for monotonic sum Aggregate err
* Run make lint
* Make monotonic an arg of creation funcs
* Remove Aggregate monotonic validation
* Rename sum to valueMap
The term sum is a good variable name that we do not want to take and
valueMap better describes the type as the storage of the aggregator.
* Adds a filter Aggregator. (#3040)
* Adds a filter Aggregator.
* Add lock and tests
* Add Concurrency tests
* fix lint errors
* Add memory constrained todo.
* Update filter comment.
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add back the stdoutmetric exporter (#3057)
* PoC stdoutmetric exporter
* Use stringer to generate String for Temporality
* Add vanity imports
* Update Temporality string expected output
* Do not return error from newConfig
* Add shutdown unit tests
* Fix spelling error
* Unify testing of ctx errors and test ForceFlush
* Add unit test for Export handle of ctx errs
* Clarify documentation about alt OTLP exporter
* Remove unused ErrUnrecognized
A third party encoder can produce their own errors. This code does
nothing unique with this error, therefore, it is removed.
* Lint exporter_test.go
* Refactor example_test.go removing FIXME
* Add test for Export shutdown err
* Add a discard encoder for testing
* Acknowledged error is returned from Shutdown
* Remove unexpected SchemaURL from stdouttrace test
* Remove unneeded *testing.T arg from testEncoderOption
* Fix the location of now
* Revise and edit docs
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Remove stale TODO from metricdata/data.go (#3064)
* Merge main into new_sdk/main (#3082)
* Use already enabled revive linter and add depguard (#2883)
* Refactor golangci-lint conf
Order settings alphabetically.
* Add revive settings to golangci conf
* Check blank imports
* Check bool-literal-in-expr
* Check constant-logical-expr
* Check context-as-argument
* Check context-key-type
* Check deep-exit
* Check defer
* Check dot-imports
* Check duplicated-imports
* Check early-return
* Check empty-block
* Check empty-lines
* Check error-naming
* Check error-return
* Check error-strings
* Check errorf
* Stop ignoring context first arg in tests
* Check exported comments
* Check flag-parameter
* Check identical branches
* Check if-return
* Check increment-decrement
* Check indent-error-flow
* Check deny list of go imports
* Check import shadowing
* Check package comments
* Check range
* Check range val in closure
* Check range val address
* Check redefines builtin id
* Check string-format
* Check struct tag
* Check superfluous else
* Check time equal
* Check var naming
* Check var declaration
* Check unconditional recursion
* Check unexported return
* Check unhandled errors
* Check unnecessary stmt
* Check unnecessary break
* Check waitgroup by value
* Exclude deep-exit check in example*_test.go files
* Move the minimum version to go 1.17 (#2917)
* Move the minimum version to go 1.17
* Update readme and changelog
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Use ByteSliceToString from golang.org/x/sys/unix (#2924)
Use unix.ByteSliceToString to convert Utsname []byte fields to strings.
This also allows to drop the charsToString helper which serves the same
purpose and matches ByteSliceToString's implementation.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* docs: fix typo (#2935)
* add timeout to grpc connection in otel-collector example (#2939)
* Closes: #2951 (#2952)
This PR updates the example listed in the getting started doc
so that it will compile without error. It also makes this
example consistent with the code found in
https://github.com/open-telemetry/opentelemetry-go/blob/main/example/fib/main.go
Signed-off-by: Brad Topol <btopol@us.ibm.com>
* fix data-model link (#2955)
* Bump go.opentelemetry.io/proto/otlp from v0.16.0 to v0.18.0 (#2960)
* Move to using Instrumentation Scope (#2976)
* Move to using Instrumentation Scope
* Use type alias, not definition
* Add a changelog entry
* docs(website_docs): fix exporting_data.md and getting-started.md toc (#2930)
* docs(website_docs): fix toc
* docs(website_docs): fix toc
* update exporting_data.md for rerun check-links
* update exporting_data.md for rerun check-links
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update getting-started.md (#2984)
grammar edit for line 175 of readme
* fix typo (#2986)
* fix typo
* spell fix
* typo fix (#2991)
* added traces.txt to gitignore for fib (#2993)
* Deprecate Library and move all uses to Scope (#2977)
* Deprecate Library and move all uses to Scope
* Add PR number to changelog
* Don't change signatures in stable modules
* Revert some changes
* Rename internal struct names
* A bit more renaming
* Update sdk/trace/span.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update based on feedback
* Revert change
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Feat/bridge support text map (#2911)
* feat: support TextMap
* doc: add comment
* test: support for ot.TextMap
* Retrieve lost code due to merge
* fix: retrieve lost code due to merge. test: support for ot.HTTPHeaders
* go mod tidy
* Optimized code style, add changelog
* doc: Restore comments
* wip: add test cases
* test: fix args error
* delete empty line
* Fix syntax and changelog errors
* Fix formatting errors
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add a release template (#2863)
* Add a release template
* Update the about field
Co-authored-by: Damien Mathieu <42@dmathieu.com>
* Fix linting Issues
* Add ignore for template link
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add workflow to automate bundling dependabot PRs (#2997)
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Release prep 1.8.0 (#3001)
* Update CHANGELOG and versions.yaml for 1.8.0 release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update go-build-tools
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.8.0
* Prepare experimental-metrics for version v0.31.0
* Prepare bridge for version v0.31.0
* `make go-mod-tidy` should use `-compat=1.17` now
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add benchmark metric test for UpDownCounter (#2655)
* add benchmark metric test for UpDownCounter
* move counter annotation up
* fix syncFloat64 to syncInt64
* fix syncFloat64 to syncInt64
* fix go-lint err
* Add semconv/v1.11.0 (#3009)
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add semconv/v1.12.0 (#3010)
* Add semconv/v1.12.0
* Update all semconv use to v1.12.0
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add http.method attribute to http server metric (#3018)
* Add http.method attribute to http server metric
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix lint
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix lint
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix for reviews
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* add changelog entry
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* Add tests and fix opentracing bridge defer warning (#3029)
* add tests and fix opentracing bridge defer warning
* add changelog entry
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update bridge/opentracing/bridge_test.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Introduce "split" metric schema transformation (#2999)
This is a new transformation type that allows to describe a change
where a metric is converted to several other metrics by eliminating
an attribute.
An example of such change that happened recently is this:
https://github.com/open-telemetry/opentelemetry-specification/pull/2617
This PR implements specification change https://github.com/open-telemetry/opentelemetry-specification/pull/2653
This PR creates package v1.1 for the new functionality. The old package v1.0
remains unchanged.
* Release v1.9.0 (#3052)
* Bump versions in versions.yaml
* Prepare stable-v1 for version v1.9.0
* Prepare experimental-schema for version v0.0.3
* Update changelog for release
* Replace ioutil with io and os (#3058)
* Make several vars into consts (#3068)
* Add support for Go 1.19 (#3077)
* Add support for Go 1.19
* Update CHANGELOG.md
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: Sam Xie <sam@samxie.me>
* Update compatibility documentation (#3079)
Remove 3 month timeline for backwards support of old versions of Go.
Signed-off-by: Brad Topol <btopol@us.ibm.com>
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: ttoad <qq530901331@outlook.com>
Co-authored-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
Co-authored-by: Håvard Anda Estensen <haavard.ae@gmail.com>
Co-authored-by: Mikhail Mazurskiy <126021+ash2k@users.noreply.github.com>
Co-authored-by: Sam Xie <sam@samxie.me>
* Adds the option to ignore timestamps in metric data tests. (#3076)
* Adds the option to ignore timestamps in metric data tests
* use config over bool
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Adds a pipelineRegistry to manage creating aggregators. (#3044)
* Adds a pipelineRegistry to manage creating aggregators.
* Made pipeline generic
* Add aggregation filter to the registry.
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Remove stale TODO (#3083)
The aggregation transform function was added in #2958.
* Add back the otlpmetric transforms (#3065)
* Add otlpmetric transforms
* Split aggregation transforms to own file
* Rename Iterator to AttrIter
* Update pkg docs
These are internal docs use developer based language.
* Document all exported funcs
* Unify metricdata type transforms into one file
* Rename metrics.go to metricdata.go
* Copy back attribute tests
* Copy back in Iterator test
* Refactor attribute tests
* Add tests for metricdata transforms
* Add multiErr support for digestible transform errs
* Test transform errors
* go mod tidy
* Use key field
* goimported
* gofmt-ed
* Fix error documentation
* go mod tidy
* Changes instruments uniqueness in pipeline. (#3071)
* Changes instruments uniquness in pipeline.
* Fix lint
* Update sdk/metric/pipeline.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Restore the exporters/otlp/otlpmetric/internal/otelconfig package (#3090)
* Restore otlpmetric/otlpconfig from main
* Rename otlpconfig to oconf
* Remove the empty envconfig_test.go
* Update import of otlpconfig in oconf_test
* go mod tidy
* Run make
* add internal OpenCensus metric translation library (#3099)
* reintroduce opencensus trace bridge (#3098)
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Document the sdk/metric/view package (#3086)
* Add package documentation for sdk/metric/view
* Refer to views not configs in WithReader docs
* Fix vanity url for view_test.go
* Add example tests for view options
* Add package example
* Fix view type docs
* Remove build constraint for doc.go
* Fix lint
* Adds async instruments and providers. (#3084)
* Adds instrument providers and instruments.
* Don't return nil instrument, return with error
* removed sync
* Added a number of tests.
Signed-off-by: GitHub <noreply@github.com>
* Address PR comments
* fix error messages
* fixes typo in test name
Signed-off-by: GitHub <noreply@github.com>
* Fix lint issues
* moved the testCallback into the TestMeterCreateInstrument
Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Merge branch 'main' into new_sdk/main (#3111)
* Use already enabled revive linter and add depguard (#2883)
* Refactor golangci-lint conf
Order settings alphabetically.
* Add revive settings to golangci conf
* Check blank imports
* Check bool-literal-in-expr
* Check constant-logical-expr
* Check context-as-argument
* Check context-key-type
* Check deep-exit
* Check defer
* Check dot-imports
* Check duplicated-imports
* Check early-return
* Check empty-block
* Check empty-lines
* Check error-naming
* Check error-return
* Check error-strings
* Check errorf
* Stop ignoring context first arg in tests
* Check exported comments
* Check flag-parameter
* Check identical branches
* Check if-return
* Check increment-decrement
* Check indent-error-flow
* Check deny list of go imports
* Check import shadowing
* Check package comments
* Check range
* Check range val in closure
* Check range val address
* Check redefines builtin id
* Check string-format
* Check struct tag
* Check superfluous else
* Check time equal
* Check var naming
* Check var declaration
* Check unconditional recursion
* Check unexported return
* Check unhandled errors
* Check unnecessary stmt
* Check unnecessary break
* Check waitgroup by value
* Exclude deep-exit check in example*_test.go files
* Move the minimum version to go 1.17 (#2917)
* Move the minimum version to go 1.17
* Update readme and changelog
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Use ByteSliceToString from golang.org/x/sys/unix (#2924)
Use unix.ByteSliceToString to convert Utsname []byte fields to strings.
This also allows to drop the charsToString helper which serves the same
purpose and matches ByteSliceToString's implementation.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* docs: fix typo (#2935)
* add timeout to grpc connection in otel-collector example (#2939)
* Closes: #2951 (#2952)
This PR updates the example listed in the getting started doc
so that it will compile without error. It also makes this
example consistent with the code found in
https://github.com/open-telemetry/opentelemetry-go/blob/main/example/fib/main.go
Signed-off-by: Brad Topol <btopol@us.ibm.com>
* fix data-model link (#2955)
* Bump go.opentelemetry.io/proto/otlp from v0.16.0 to v0.18.0 (#2960)
* Move to using Instrumentation Scope (#2976)
* Move to using Instrumentation Scope
* Use type alias, not definition
* Add a changelog entry
* docs(website_docs): fix exporting_data.md and getting-started.md toc (#2930)
* docs(website_docs): fix toc
* docs(website_docs): fix toc
* update exporting_data.md for rerun check-links
* update exporting_data.md for rerun check-links
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update getting-started.md (#2984)
grammar edit for line 175 of readme
* fix typo (#2986)
* fix typo
* spell fix
* typo fix (#2991)
* added traces.txt to gitignore for fib (#2993)
* Deprecate Library and move all uses to Scope (#2977)
* Deprecate Library and move all uses to Scope
* Add PR number to changelog
* Don't change signatures in stable modules
* Revert some changes
* Rename internal struct names
* A bit more renaming
* Update sdk/trace/span.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update based on feedback
* Revert change
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Feat/bridge support text map (#2911)
* feat: support TextMap
* doc: add comment
* test: support for ot.TextMap
* Retrieve lost code due to merge
* fix: retrieve lost code due to merge. test: support for ot.HTTPHeaders
* go mod tidy
* Optimized code style, add changelog
* doc: Restore comments
* wip: add test cases
* test: fix args error
* delete empty line
* Fix syntax and changelog errors
* Fix formatting errors
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add a release template (#2863)
* Add a release template
* Update the about field
Co-authored-by: Damien Mathieu <42@dmathieu.com>
* Fix linting Issues
* Add ignore for template link
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add workflow to automate bundling dependabot PRs (#2997)
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Release prep 1.8.0 (#3001)
* Update CHANGELOG and versions.yaml for 1.8.0 release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update go-build-tools
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.8.0
* Prepare experimental-metrics for version v0.31.0
* Prepare bridge for version v0.31.0
* `make go-mod-tidy` should use `-compat=1.17` now
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add benchmark metric test for UpDownCounter (#2655)
* add benchmark metric test for UpDownCounter
* move counter annotation up
* fix syncFloat64 to syncInt64
* fix syncFloat64 to syncInt64
* fix go-lint err
* Add semconv/v1.11.0 (#3009)
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add semconv/v1.12.0 (#3010)
* Add semconv/v1.12.0
* Update all semconv use to v1.12.0
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add http.method attribute to http server metric (#3018)
* Add http.method attribute to http server metric
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix lint
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix lint
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix for reviews
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* add changelog entry
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* Add tests and fix opentracing bridge defer warning (#3029)
* add tests and fix opentracing bridge defer warning
* add changelog entry
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update bridge/opentracing/bridge_test.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Introduce "split" metric schema transformation (#2999)
This is a new transformation type that allows to describe a change
where a metric is converted to several other metrics by eliminating
an attribute.
An example of such change that happened recently is this:
https://github.com/open-telemetry/opentelemetry-specification/pull/2617
This PR implements specification change https://github.com/open-telemetry/opentelemetry-specification/pull/2653
This PR creates package v1.1 for the new functionality. The old package v1.0
remains unchanged.
* Release v1.9.0 (#3052)
* Bump versions in versions.yaml
* Prepare stable-v1 for version v1.9.0
* Prepare experimental-schema for version v0.0.3
* Update changelog for release
* Replace ioutil with io and os (#3058)
* Make several vars into consts (#3068)
* Add support for Go 1.19 (#3077)
* Add support for Go 1.19
* Update CHANGELOG.md
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: Sam Xie <sam@samxie.me>
* Update compatibility documentation (#3079)
Remove 3 month timeline for backwards support of old versions of Go.
* Fix `opentracing.Bridge` where it miss identifying the spanKind (#3096)
* Fix opentracing.Bridge where it was not identifying the spanKinf correctly
* fix test
* changelog
* Keeping backward comppatibillity
* Update CHANGELOG.md
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* replace `required` by `requirementlevel` (#3103)
* Change the inclusivity of exponential histogram bounds (#2982)
* Use lower-inclusive boundaries
* make exponent and logarithm more symmetric
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Update golangci-lint to v1.48.0 (#3105)
* Update golangci-lint to v1.48.0
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Bump go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0 (#3107)
* Bump go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Signed-off-by: Brad Topol <btopol@us.ibm.com>
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: ttoad <qq530901331@outlook.com>
Co-authored-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
Co-authored-by: Håvard Anda Estensen <haavard.ae@gmail.com>
Co-authored-by: Mikhail Mazurskiy <126021+ash2k@users.noreply.github.com>
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: Alan Protasio <alanprot@gmail.com>
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
* Add otlpmetric exporter (#3089)
* Add otlpmetric package doc
* Add Client interface
* Add the Exporter
Have the Exporter ensure synchronous access to all client methods.
* Add race detection test for Exporter
* Expand New godocs
* Fix lint
* Merge transform and upload errors
* Fix ineffectual increment
* Make pipelineRegistry non-generic (#3115)
* Make pipelineRegistry non-generic
* Add Synchronous instruments (#3124)
* Add Synchronous instruments
* remove duplicate code in instrument
* Fixes to Histogram comments
* Add back the otlpmetricgrpc exporter (#3094)
* Add otlpmetric package doc
* Add Client interface
* Add the Exporter
Have the Exporter ensure synchronous access to all client methods.
* Add race detection test for Exporter
* Expand New godocs
* Fix lint
* Add the otlpmetricgrpc Go module
* Restore otlpmetricgrpc from main
* Remove integration testing from otlpmetricgrpc
* Fix import of otlpconfig to oconf
* Update client
Add ForceFlush method to satisfy otlpmetric.Client, unexport Start, and
restructure NewClient to return a started client.
* Update otlpmetricgrpc New functions
Remove NewUnstarted and only export New.
* Remove unneeded client sync
The exporter handle the synchronization of client method calls.
* Update example_test.go
* Update client_unit_test.go
* Rename client_unit_test.go to client_test.go
* Rename options.go to config.go
* Add package doc
* Unify exporter.go and doc.go into client.go
* Unexport NewClient
* Correct option documentation
* Add env config documentation
* go mod tidy
* Restrict build to Go 1.18
* Update client.go
Fix copied UploadMetrics documentation.
* Run make
* Close client conn even if context deadline reached
* Add sdk/metric Go pkg docs and example (#3139)
* Add sdk/metric Go pkg docs
* Add example_test.go
* Add Go 1.18 build guard to example_test.go
* Merge main into new_sdk/main (#3141)
* Use already enabled revive linter and add depguard (#2883)
* Refactor golangci-lint conf
Order settings alphabetically.
* Add revive settings to golangci conf
* Check blank imports
* Check bool-literal-in-expr
* Check constant-logical-expr
* Check context-as-argument
* Check context-key-type
* Check deep-exit
* Check defer
* Check dot-imports
* Check duplicated-imports
* Check early-return
* Check empty-block
* Check empty-lines
* Check error-naming
* Check error-return
* Check error-strings
* Check errorf
* Stop ignoring context first arg in tests
* Check exported comments
* Check flag-parameter
* Check identical branches
* Check if-return
* Check increment-decrement
* Check indent-error-flow
* Check deny list of go imports
* Check import shadowing
* Check package comments
* Check range
* Check range val in closure
* Check range val address
* Check redefines builtin id
* Check string-format
* Check struct tag
* Check superfluous else
* Check time equal
* Check var naming
* Check var declaration
* Check unconditional recursion
* Check unexported return
* Check unhandled errors
* Check unnecessary stmt
* Check unnecessary break
* Check waitgroup by value
* Exclude deep-exit check in example*_test.go files
* Move the minimum version to go 1.17 (#2917)
* Move the minimum version to go 1.17
* Update readme and changelog
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Use ByteSliceToString from golang.org/x/sys/unix (#2924)
Use unix.ByteSliceToString to convert Utsname []byte fields to strings.
This also allows to drop the charsToString helper which serves the same
purpose and matches ByteSliceToString's implementation.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* docs: fix typo (#2935)
* add timeout to grpc connection in otel-collector example (#2939)
* Closes: #2951 (#2952)
This PR updates the example listed in the getting started doc
so that it will compile without error. It also makes this
example consistent with the code found in
https://github.com/open-telemetry/opentelemetry-go/blob/main/example/fib/main.go
Signed-off-by: Brad Topol <btopol@us.ibm.com>
* fix data-model link (#2955)
* Bump go.opentelemetry.io/proto/otlp from v0.16.0 to v0.18.0 (#2960)
* Move to using Instrumentation Scope (#2976)
* Move to using Instrumentation Scope
* Use type alias, not definition
* Add a changelog entry
* docs(website_docs): fix exporting_data.md and getting-started.md toc (#2930)
* docs(website_docs): fix toc
* docs(website_docs): fix toc
* update exporting_data.md for rerun check-links
* update exporting_data.md for rerun check-links
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update getting-started.md (#2984)
grammar edit for line 175 of readme
* fix typo (#2986)
* fix typo
* spell fix
* typo fix (#2991)
* added traces.txt to gitignore for fib (#2993)
* Deprecate Library and move all uses to Scope (#2977)
* Deprecate Library and move all uses to Scope
* Add PR number to changelog
* Don't change signatures in stable modules
* Revert some changes
* Rename internal struct names
* A bit more renaming
* Update sdk/trace/span.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update based on feedback
* Revert change
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Feat/bridge support text map (#2911)
* feat: support TextMap
* doc: add comment
* test: support for ot.TextMap
* Retrieve lost code due to merge
* fix: retrieve lost code due to merge. test: support for ot.HTTPHeaders
* go mod tidy
* Optimized code style, add changelog
* doc: Restore comments
* wip: add test cases
* test: fix args error
* delete empty line
* Fix syntax and changelog errors
* Fix formatting errors
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add a release template (#2863)
* Add a release template
* Update the about field
Co-authored-by: Damien Mathieu <42@dmathieu.com>
* Fix linting Issues
* Add ignore for template link
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add workflow to automate bundling dependabot PRs (#2997)
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Release prep 1.8.0 (#3001)
* Update CHANGELOG and versions.yaml for 1.8.0 release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update go-build-tools
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.8.0
* Prepare experimental-metrics for version v0.31.0
* Prepare bridge for version v0.31.0
* `make go-mod-tidy` should use `-compat=1.17` now
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add benchmark metric test for UpDownCounter (#2655)
* add benchmark metric test for UpDownCounter
* move counter annotation up
* fix syncFloat64 to syncInt64
* fix syncFloat64 to syncInt64
* fix go-lint err
* Add semconv/v1.11.0 (#3009)
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add semconv/v1.12.0 (#3010)
* Add semconv/v1.12.0
* Update all semconv use to v1.12.0
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add http.method attribute to http server metric (#3018)
* Add http.method attribute to http server metric
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix lint
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix lint
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* fix for reviews
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* add changelog entry
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
* Add tests and fix opentracing bridge defer warning (#3029)
* add tests and fix opentracing bridge defer warning
* add changelog entry
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update bridge/opentracing/bridge_test.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Introduce "split" metric schema transformation (#2999)
This is a new transformation type that allows to describe a change
where a metric is converted to several other metrics by eliminating
an attribute.
An example of such change that happened recently is this:
https://github.com/open-telemetry/opentelemetry-specification/pull/2617
This PR implements specification change https://github.com/open-telemetry/opentelemetry-specification/pull/2653
This PR creates package v1.1 for the new functionality. The old package v1.0
remains unchanged.
* Release v1.9.0 (#3052)
* Bump versions in versions.yaml
* Prepare stable-v1 for version v1.9.0
* Prepare experimental-schema for version v0.0.3
* Update changelog for release
* Replace ioutil with io and os (#3058)
* Make several vars into consts (#3068)
* Add support for Go 1.19 (#3077)
* Add support for Go 1.19
* Update CHANGELOG.md
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: Sam Xie <sam@samxie.me>
* Update compatibility documentation (#3079)
Remove 3 month timeline for backwards support of old versions of Go.
* Fix `opentracing.Bridge` where it miss identifying the spanKind (#3096)
* Fix opentracing.Bridge where it was not identifying the spanKinf correctly
* fix test
* changelog
* Keeping backward comppatibillity
* Update CHANGELOG.md
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* replace `required` by `requirementlevel` (#3103)
* Change the inclusivity of exponential histogram bounds (#2982)
* Use lower-inclusive boundaries
* make exponent and logarithm more symmetric
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Update golangci-lint to v1.48.0 (#3105)
* Update golangci-lint to v1.48.0
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Bump go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0 (#3107)
* Bump go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Update tracer to guard for a nil ctx (#3110)
* Update tracer to guard for a nil ctx
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Fix sdk/instrumentation pkg docs (#3130)
* Add instrumentation scope attributes (#3131)
* Add WithScopeAttributes TracerOption to trace API
* Add Attributes field to instrumentation Scope
* Use scope attributes for new Tracer
* Fix stdouttrace expected test output
* Allow unexported Set fields in sdk/trace test
* Export instrumentation scope attrs in OTLP
* Add changes to the changelog
* Fix imports with make lint
* Add unit tests for WithScopeAttributes
* Fix English in Scope documentation
* Add WithScopeAttributes MeterOption to metric API package (#3132)
* Add WithScopeAttributes MeterOption to metric pkg
* Add MeterConfig unit tests
* Add changes to changelog
* Fix import linting
* Update MeterProvider documentation
Include information about how to use WithScopeAttributes.
* Refactor TracerProvider documentation (#3133)
* Refactor TracerProvider documentation
* Fix English article
* Grammar fixes
* consistency-of: Changed signal names for website docs (#3137)
* Shut down all processors even on error (#3091)
* Fix stdoutmetric example test
The merged instrumentation Scope includes SchemaURL and Attributes now,
add them to the expected output.
Signed-off-by: Brad Topol <btopol@us.ibm.com>
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: ttoad <qq530901331@outlook.com>
Co-authored-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
Co-authored-by: Håvard Anda Estensen <haavard.ae@gmail.com>
Co-authored-by: Mikhail Mazurskiy <126021+ash2k@users.noreply.github.com>
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: Alan Protasio <alanprot@gmail.com>
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
Co-authored-by: Mitch Usher <cull.methi@gmail.com>
Co-authored-by: Gaurang Patel <mr.patelgaurang@gmail.com>
* Remove empty metrictest pkg (#3148)
* Add exporters/otlp/otlpmetric/internal/otest (#3125)
* Add otlpmetric package doc
* Add Client interface
* Add the Exporter
Have the Exporter ensure synchronous access to all client methods.
* Add race detection test for Exporter
* Expand New godocs
* Fix lint
* Restore otlpmetrictest from main
* Rename otlpmetrictest to otest
* Remove data.go
The functions and types it contains are no longer relevant to the SDK.
* Update client context error tests
Remove multiple shutdown tests. The Client interface states this should
never happen.
* Remove collector.go and otlptest.go
* Expand client tests with ctx and force-flush
* Add UploadMetrics tests
* Test the tests with a trivial client
* Condense all to client.go
* Example of how to run RunClientTests
* Add client integration testing
* Add GRPCCollector
* Remove GRPCCollector to limit scope of PR
* Add back the otlpmetrichttp exporter (#3097)
* Add otlpmetric package doc
* Add Client interface
* Add the Exporter
Have the Exporter ensure synchronous access to all client methods.
* Add race detection test for Exporter
* Expand New godocs
* Fix lint
* Add back the otlpmetrichttp pkg from main
* Restrict to Go 1.18 and above
* Remove integration testing
* Rename client_unit_test.go to client_test.go
* Rename options.go to config.go
* Remove the NewUnstarted func
* Remove Start method from client
* Add no-op ForceFlush method to client
* Update otlpconfig pkg name to oconf
* Rename Stop method to Shutdown
Match the otlpmetric.Client interface.
* Update creation functions to compile
* Remove name field from client
* Remove sync of methods from client
This is handled by the exporter.
* Remove unused generalCfg field from client
* Replace cfg client field with used conf vals
* Use a http request instead of url/header fields
* Remove NewClient and move New into client.go
* Rename client.client field to client.httpClient
* Update client tests
Remove test of a retry config and add functional tests of the client
methods honoring a context.
* Remove deprecated WithMaxAttempts and WithBackoff
* Update option docs
Include info on envvars.
* Fix lint
* Fix lint errors
* Revert New to accept a context
* Add example test
* Update pkg docs
* go mod tidy
* Use url.URL to form HTTP request URL
* Remove stale TODO in sdk/view (#3149)
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Use unique metric testing data in reader_test (#3151)
Address unresolved TODO.
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Add new metric SDK changes to changelog (#3150)
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Add integration and config testing to otlpmetricgrpc (#3126)
* Add the GRPCCollector to otest
* Use otest to test otlpmetricgrpc Client
* Add WithHeaders and WithTimeout tests
* Add integration and config testing to otlpmetrichttp (#3155)
* Add HTTPCollector to otest
* Add integration testing for otlpmetrichttp
* Fix NewHTTPCollector docs
* Add config tests
* Fix lint
* Add WithURLPath test
* Add WithTLSClientConfig test
* Ignore depguard for crypto/x509/pkix
This is a testing package that uses the package to generate a weak
testing TLS certificate.
* Add Prometheus exporter code (#3135)
* Add Prometheus exporter example (#3168)
* Add back prom exporter to README.md
* Fix removal changes from #3154 in API
* Update CHANGELOG with PR number
Signed-off-by: Brad Topol <btopol@us.ibm.com>
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Tobias Klauser <tobias.klauser@gmail.com>
Co-authored-by: petrie <244236866@qq.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Brad Topol <btopol@us.ibm.com>
Co-authored-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Kshitija Murudi <kmurudi@ncsu.edu>
Co-authored-by: Petrie Liu <lpfvip2008@gmail.com>
Co-authored-by: Guangya Liu <gyliu513@gmail.com>
Co-authored-by: Craig Pastro <craig.pastro@auth0.com>
Co-authored-by: ttoad <qq530901331@outlook.com>
Co-authored-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
Co-authored-by: Håvard Anda Estensen <haavard.ae@gmail.com>
Co-authored-by: Mikhail Mazurskiy <126021+ash2k@users.noreply.github.com>
Co-authored-by: Sam Xie <sam@samxie.me>
Co-authored-by: David Ashpole <dashpole@google.com>
Co-authored-by: Alan Protasio <alanprot@gmail.com>
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
Co-authored-by: Mitch Usher <cull.methi@gmail.com>
Co-authored-by: Gaurang Patel <mr.patelgaurang@gmail.com>
Co-authored-by: Mike Dame <mikedame@google.com>
* Add WithScopeAttributes TracerOption to trace API
* Add Attributes field to instrumentation Scope
* Use scope attributes for new Tracer
* Fix stdouttrace expected test output
* Allow unexported Set fields in sdk/trace test
* Export instrumentation scope attrs in OTLP
* Add changes to the changelog
* Fix imports with make lint
* Add unit tests for WithScopeAttributes
* Fix English in Scope documentation
* Use lower-inclusive boundaries
* make exponent and logarithm more symmetric
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Aaron Clawson <3766680+MadVikingGod@users.noreply.github.com>
* Bump versions in versions.yaml
* Prepare stable-v1 for version v1.9.0
* Prepare experimental-schema for version v0.0.3
* Update changelog for release
* Update CHANGELOG and versions.yaml for 1.8.0 release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update go-build-tools
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.8.0
* Prepare experimental-metrics for version v0.31.0
* Prepare bridge for version v0.31.0
* `make go-mod-tidy` should use `-compat=1.17` now
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Deprecate Library and move all uses to Scope
* Add PR number to changelog
* Don't change signatures in stable modules
* Revert some changes
* Rename internal struct names
* A bit more renaming
* Update sdk/trace/span.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update based on feedback
* Revert change
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Use unix.ByteSliceToString to convert Utsname []byte fields to strings.
This also allows to drop the charsToString helper which serves the same
purpose and matches ByteSliceToString's implementation.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Bump versions
* Prepare stable-v1 for version v1.7.0
* Prepare experimental-metrics for version v0.30.0
* Prepare bridge for version v0.30.0
* Update changelog
Comment should be complete sentences outside of lists with sentence
fragments. This adds the godot linter to check these complete sentences
end with punctuation. If they do not, running fix will append a period.
* Replace use of old term label with attribute
The specification has unified on the term attribute to describe
key-value pairs. There exist still many hold-overs of the use of the
term label. This updates those uses or deprecates exported types and
functions in favor of renamed forms.
* fix infinite recursion
* Remove backticks from attribute set docs
* Remove LabelFilterSelector entirely
* Remove Metadata.Labels instead of deprecate
* Update changelog with public changes
* Revert OC err msg
* No wrap RELEASING Semantic Convention Generation section
* Initial generator
* Update template render
* Add exception and schema templates
* Add semconv/internal http unification
* Add http template
* Add licenses header
* Embed the templates
* Update static version in schema tmpl
* Add semconv-generate target to Makefile
Use this target to generate versions of the semconv packages.
* Generate semconv packages
* Update RELEASING to use make semconv-generate
* Add comments to semconvkit
* Generate semconv/v1.8.0
* Use new version of semconv
* Add changes to changelog
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update changelog and versions for metric/v0.29.0 release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare experimental-metrics for version v0.29.0
* Prepare bridge for version v0.29.0
* update changelog and versions for 1.6.2 release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.6.2
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
The WithProcess and WithProcessCommandArgs options contain command line
arguments as resource attributes. These could potentially expose user
secrets. Document this fact so users better understand the implications
of using these options.
* Update versions.yaml
* Bump version in changelog
* Prepare stable-v1 for version v1.6.0
* Prepare experimental-metrics for version v0.28.0
* Prepare bridge for version v0.28.0
* Update changelog language
* Allow setting the Sampler via environment variables (#2305)
* Add changelog entry.
* Replace t.Setenv with internaltest/SetEnvVariables for Go <= 1.6.
* Handle the lack of a sampler argument without logging errors.
* Add additional test cases and error checks.
* Refactor documentation.
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
* emitBatchOverhead should only be used for splitting spans into batches (#2512)
* emitBatchOverhead should only be used for splitting spans into batches (#2503)
* limit max packet size parameter
* Add additional errors types, simplify abstractions and error handling
* Make error comparisons less fragile.
* Fix typo in jaeger example (#2524)
* Fix some typos in docs for Go libraries (#2520)
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Fix getting-started.md Run function (#2527)
* Fix getting-started.md Run function, it assigns this new context to a variable shared between connections in to accept loop. Thus creating a growing chain of contexts. so every calculate fibonacci request, all spans in a trace.
* add a comment explaining the reason for that new variable
* update example fib
* Bump github.com/google/go-cmp from 0.5.6 to 0.5.7 across the project (#2545)
* update go-cmp to 0.5.7
* fixes go.sums
Co-authored-by: Aaron Clawson <MadVikingGod@users.noreply.github.com>
* Un-escape url coding when parsing baggage. (#2529)
* un-escape url coding when parsing baggage.
* Added changelog
Co-authored-by: Aaron Clawson <MadVikingGod@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Bump go.opentelemetry.io/proto/otlp from 0.11.0 to 0.12.0 (#2546)
* Update go.opentelemetry.io/proto/otlp to v0.12.0
* Changelog
* Update CHANGELOG.md
Fix's md linting
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Aaron Clawson <MadVikingGod@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Remove unused sdk/internal/santize (#2549)
* Add links to code examples and docs (#2551)
* Bump github.com/prometheus/client_golang from 1.11.0 to 1.12.0 in /exporters/prometheus (#2541)
* Bump github.com/prometheus/client_golang in /exporters/prometheus
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.11.0...v1.12.0)
---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* go mod tidy
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tyler Yahn <codingalias@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Optimize evictedQueue implementation and use (#2556)
* Optimize evictedQueue impl and use
Avoid unnecessary allocations in the recordingSpan by using an
evictedQueue type instead of a pointer to one.
Lazy allocate the evictedQueue queue to prevent unnecessary operations
for spans without any use of the queue.
Document the evictedQueue
* Fix grammar
* Add env support for batch span processor (#2515)
* Add env support for batch span processor
* Update changelog
* lint
* Bump golang.org/x/tools from 0.1.8 to 0.1.9 in /internal/tools (#2566)
* Bump golang.org/x/tools from 0.1.8 to 0.1.9 in /internal/tools
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.1.8 to 0.1.9.
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](https://github.com/golang/tools/compare/v0.1.8...v0.1.9)
---
updated-dependencies:
- dependency-name: golang.org/x/tools
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* Auto-fix go.sum changes in dependent modules
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: MrAlias <MrAlias@users.noreply.github.com>
* Bump github.com/golangci/golangci-lint from 1.43.0 to 1.44.0 in /internal/tools (#2567)
* Bump github.com/golangci/golangci-lint in /internal/tools
Bumps [github.com/golangci/golangci-lint](https://github.com/golangci/golangci-lint) from 1.43.0 to 1.44.0.
- [Release notes](https://github.com/golangci/golangci-lint/releases)
- [Changelog](https://github.com/golangci/golangci-lint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/golangci/golangci-lint/compare/v1.43.0...v1.44.0)
---
updated-dependencies:
- dependency-name: github.com/golangci/golangci-lint
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* Auto-fix go.sum changes in dependent modules
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: MrAlias <MrAlias@users.noreply.github.com>
* Bump github.com/prometheus/client_golang from 1.12.0 to 1.12.1 in /exporters/prometheus (#2570)
* Bump github.com/prometheus/client_golang in /exporters/prometheus
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.12.0 to 1.12.1.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.12.0...v1.12.1)
---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* Auto-fix go.sum changes in dependent modules
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: MrAlias <MrAlias@users.noreply.github.com>
* Fix TestBackoffRetry in otlp/internal/retry package (#2562)
* Fix TestBackoffRetry in otlp retry pkg
The delay of the retry is within two times a randomization factor (the
back-off time is delay * random number within [1 - factor, 1 + factor].
This means the waitFunc in TestBackoffRetry needs to check the delay is
within an appropriate delta, not equal to configure initial delay.
* Fix delta value
* Fix delta
Co-authored-by: Aaron Clawson <Aaron.Clawson@gmail.com>
* Bump google.golang.org/grpc from 1.43.0 to 1.44.0 in /exporters/otlp/otlptrace (#2568)
* Bump google.golang.org/grpc in /exporters/otlp/otlptrace
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.43.0 to 1.44.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.43.0...v1.44.0)
---
updated-dependencies:
- dependency-name: google.golang.org/grpc
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* Auto-fix go.sum changes in dependent modules
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: MrAlias <MrAlias@users.noreply.github.com>
* Bump google.golang.org/grpc from 1.43.0 to 1.44.0 in /example/otel-collector (#2565)
* Bump google.golang.org/grpc in /example/otel-collector
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.43.0 to 1.44.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.43.0...v1.44.0)
---
updated-dependencies:
- dependency-name: google.golang.org/grpc
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* Auto-fix go.sum changes in dependent modules
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: MrAlias <MrAlias@users.noreply.github.com>
* Bump google.golang.org/grpc from 1.43.0 to 1.44.0 in /exporters/otlp/otlpmetric (#2572)
* Bump google.golang.org/grpc in /exporters/otlp/otlpmetric
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.43.0 to 1.44.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.43.0...v1.44.0)
---
updated-dependencies:
- dependency-name: google.golang.org/grpc
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* Auto-fix go.sum changes in dependent modules
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: MrAlias <MrAlias@users.noreply.github.com>
* Change Options to accept type not pointer (#2558)
* Change trace options to accept type not pointer
Add benchmark to show allocation improvement.
* Update CONTRIBUTING.md guidelines
* Update all Option iface
* Fix grammar in CONTRIBUTING
* Do not store TracerProvider or Tracer fields in SDK recordingSpan (#2575)
* Do not store TracerProvider fields in span
Instead of keeping a reference to the span's Tracer, and therefore also
it's TracerProvider, and the associated resource and spanLimits just
keep the reference to the Tracer. Refer to the TracerProvider fields
when needed instead.
* Make span refer to the inst lib via the Tracer
Instead of holding a field in the span, refer to the field in the parent
Tracer.
* [website_docs] fix page meta-links (#2580)
Contributes to https://github.com/open-telemetry/opentelemetry.io/issues/1096
/cc @cartermp @austinlparker
* Validate members once, in `NewMember` (#2522)
* use NewMember, or specify if the member is not validated when creating new ones
* expect members to already be validated when creating a new package
* add changelog entry
* add an isEmpty field to member and property for quick validation
* rename isEmpty to hasData
So by default, an empty struct really is marked as having no data
* Update baggage/baggage_test.go
Co-authored-by: Aaron Clawson <Aaron.Clawson@gmail.com>
* don't validate the member in parseMember, we alredy ran that validation
We also don't want to use NewMember, as that runs the property
validation again, making the benchmark quite slower
* move changelog entry to the fixed section
* provide the member/property data when returning an invalid error
Co-authored-by: Aaron Clawson <Aaron.Clawson@gmail.com>
* Fix link to Zipkin exporter (#2581)
Currently it is linked to the old package that was moved.
* Unexport EnvBatchSpanProcessor* constants (#2583)
* Move BSP env support to internal
* Use pkg name
* Update env test
* Use internal/env in sdk/trace
* Avoid an extra allocation in applyTracerProviderEnvConfigs.
* Add additional errors for ratio > 1.0.
* Add test cases for ratio > 1.0.
* Update CHANGELOG.md
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
Co-authored-by: jaychung <ken8203@gmail.com>
Co-authored-by: Ben Wells <b.v.wells@gmail.com>
Co-authored-by: Jeremy Kaplan <jeremy@stytch.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: thinkgo <49174849+thinkgos@users.noreply.github.com>
Co-authored-by: Aaron Clawson <Aaron.Clawson@gmail.com>
Co-authored-by: Aaron Clawson <MadVikingGod@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tyler Yahn <codingalias@gmail.com>
Co-authored-by: Chao Weng <19381524+sincejune@users.noreply.github.com>
Co-authored-by: Patrice Chalin <chalin@users.noreply.github.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
* Support general attribute limits for spans
When model specific limits are not set fallback to the general ones
defined by environment variables before defaults for attribute length
and count limits. This is in compliance with the specification.
* Update env pkg unit tests
Test all environment variable helper functions.
* Add changes to changelog
* Update firstInt doc
* Bump stable-v1 from v1.4.1 to v1.5.0
* Remove internal/metric module from versions file
This module was removed from the project.
* Prepare stable-v1 for version v1.5.0
* Update changelog
* Update CHANGELOG.md
* Add container id support to Resource
* Fix wrong test case name
* Add WithContainer option
* Update CHANGELOG
* Fix comments
* Update CHANGELOG
* Use regex to find container id
* Add tests for reading cgroup file
* Update sdk/resource/container.go
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Update format
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Empty All of the metrics dir
* Add instrument api with documentation
* Add a NoOp implementation.
* Updated to the new config standard
* Address PR comments
* This change moves components to sdk/metrics
The Moved components are:
- metric/metrictest
- metric/number
- metric/internal/registry
- metric/sdkapi
* The SDK changes necessary to satasify the new api
* This fixes the remaing tests.
* Update changelog
* refactor the Noop meter and instruments into one package.
* Renamed pkg.Instruments to pkg.InstrumentProvider
Co-authored-by: Aaron Clawson <MadVikingGod@users.noreply.github.com>
* Update versions.yaml
* Prepare stable-v1 for version v1.4.1
* Prepare experimental-metrics for version v0.27.1
* Prepare bridge for version v0.27.1
* Update CHANGELOG
* Revert "Prepare experimental-metrics for version v0.27.1"
This reverts commit 838743af21.
* Do not release experimental-metrics with v0.27.1
* Fix race condition in reading the dropped spans number
As any race condition this should be consider an undefined behavior, and a patch release should be done.
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update versions.yaml
* Update changelog
* Upgrade stable-v1 to version v1.4.0
* Upgrade experimental-metrics to version v0.27.0
* Upgrade bridge to version v0.27.0
* Update CHANGELOG.md
* Replace recordingSpan attributes implementation
Instead of an LRU strategy for cap-ing span attributes, comply with the
specification and drop last added. To do this, the attributesmap is
replaced with a slice of attributes.
* Remove attributesmap files
* Refine addition algorithm
Unify duplicated code.
Fix deduplication algorithm.
Fix droppedAttributes to always be returned, even if the span has no
attributes.
* Unify span SetAttributes tests
* Doc fix to attr drop order in changelog
* Test span and snapshot attrs
* fix lint
* Add tests for recordingSpan method defaults
* Comment why pre-allocation is not done
* Correct grammar in recordingSpan allocation comment
* Update sdk/trace/tracer.go
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Do not store TracerProvider fields in span
Instead of keeping a reference to the span's Tracer, and therefore also
it's TracerProvider, and the associated resource and spanLimits just
keep the reference to the Tracer. Refer to the TracerProvider fields
when needed instead.
* Make span refer to the inst lib via the Tracer
Instead of holding a field in the span, refer to the field in the parent
Tracer.
* Change trace options to accept type not pointer
Add benchmark to show allocation improvement.
* Update CONTRIBUTING.md guidelines
* Update all Option iface
* Fix grammar in CONTRIBUTING
* Optimize evictedQueue impl and use
Avoid unnecessary allocations in the recordingSpan by using an
evictedQueue type instead of a pointer to one.
Lazy allocate the evictedQueue queue to prevent unnecessary operations
for spans without any use of the queue.
Document the evictedQueue
* Fix grammar
* Update versions.yaml for release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.3.0
* Prepare experimental-metrics for version v0.26.0
* Prepare bridge for version v0.26.0
* Update CHANGELOG
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Centralize the retry package for the otlp exporters
* Add dependabot config
* Use unified internal/retry module in otlp exporters
* Remove otlpmetric and otlptrace internal/retry module
* Run go mod tidy in otlp{metric,trace}
* Added Benchmarks around events
Also fixed the attribute benchmarks to reflect the # of attributes in the test
* Fix test txt, and too new a version of time
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Remove nil check on return from NewTestSpanProcessor as it can never be
nil, addressing #2396. Also, add nil checks for testSpanProcessor
methods to prevent panics.
* change resource.Default to be evaluated on first call, rather than on import
* guard defaultResource creation with sync.Once, fallback to emtpyResource
* update CHANGELOG
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
This is a simple loggin interface to be used interally for the sdk.
Included is an exmaple in `namedtracer` run:
```
cd example/namedtracer
go run . >/dev/null
```
Bump github.com/golangci/golangci-lint from 1.42.1 to 1.43.0 in /internal/tools.
Bump google.golang.org/grpc from 1.41.0 to 1.42.0 in /exporters/otlp/otlpmetric.
Bump go.opentelemetry.io/proto/otlp from 0.9.0 to 0.10.0 in /exporters/otlp/otlpmetric/otlpmetrichttp.
Bump go.opentelemetry.io/proto/otlp from 0.9.0 to 0.10.0 in /exporters/otlp/otlpmetric.
Bump go.opentelemetry.io/proto/otlp from 0.9.0 to 0.10.0 in /exporters/otlp/otlptrace.
Bump google.golang.org/grpc from 1.41.0 to 1.42.0 in /exporters/otlp/otlpmetric/otlpmetricgrpc.
Bump google.golang.org/grpc from 1.41.0 to 1.42.0 in /exporters/otlp/otlptrace.
Bump go.opentelemetry.io/proto/otlp from 0.9.0 to 0.10.0 in /exporters/otlp/otlptrace/otlptracehttp.
Bump google.golang.org/grpc from 1.41.0 to 1.42.0 in /exporters/otlp/otlptrace/otlptracegrpc.
Bump go.opentelemetry.io/proto/otlp from 0.9.0 to 0.10.0 in /exporters/otlp/otlpmetric/otlpmetricgrpc.
Bump go.opentelemetry.io/proto/otlp from 0.9.0 to 0.10.0 in /exporters/otlp/otlptrace/otlptracegrpc.
Bump github.com/benbjohnson/clock from 1.1.0 to 1.2.0 in /sdk/metric.
Bump google.golang.org/grpc from 1.41.0 to 1.42.0 in /example/otel-collector.
* Empty queued spans when ForceFlush called
Update the implementation of ForceFlush() to first ensure that all spans
which are queued are added to the batch before calling export spans.
Create a small ReadOnlySpan implementation which can be used as a marker
that ForceFlush has been invoked and used to notify when all spans are
ready to be exported.
Fixes#2080.
* Add a changelog entry.
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update sdk/trace/batch_span_processor.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Improve test case to verify multiple flushes.
* Refactor code to use enqueue.
* Be more defensive on waiting for queue.
Update the handling of the force flush span so we only wait on the
channel if we were able to enqueue the span to the queue.
* Fix linter.
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Version stable-v1 modset to be 1.0.2 for release
* Prepare stable-v1 for version v1.0.2
* Update changelog
Add new 1.0.2 section and move relevant items that the release will
contain to this section.
* Add article to CHANGELOG entry to correct grammar
* Release 1.1.0 instead of 1.0.2
* Prepare stable-v1 for version v1.1.0
* Apply suggestions from code review
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
* Add semconv/v1.7.0 package
Generated from the v1.7.0 release of the specification using the
semconvgen tool manually. This also updates the project to use this
version of the semconv package.
This does not include the prior, and missing, v1.5.0 and v1.6.0 versions
of the semconv package. They are planned to be added in a follow-on PR.
* Update CHANGELOG.md
* Add ability to parse Schema files according to OTEP 0152
The parser and parsed representation (AST) are placed in a separate
Go module so that they are can be consumed independently without
the need to bring the rest of the SDK.
Ability to use the parsed representation for schema conversions
can be added later.
* Fixes based on PR comments
* Rename "label" to "attributes"
See https://github.com/open-telemetry/oteps/pull/181
* Fixes based on PR comments
* Add README.md
* Wrap the error in Parse()
* Add docs for exporter types
* Use yaml.NewDecoder
* Verify parsed content in the test
* Fix indentation in README example
* Fix README spaces vs tabs
* Correctly space imports
* Add heading to README
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* move Descriptor to sdkapi, add test
* rename Descriptor to sdkapi
* precommit
* Move the rest of the sdkapi
* use alias for Observation and Measurement
* Changelog
* pr num
* comment Measurement and Observation
* swap comments
* move->moved
* Update build tools
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG and versions.yaml
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.0.1
* Prepare experimental-metrics for version v0.24.0
* Prepare bridge for version v0.24.0
* Update releasing documentation and create add-tags make target
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* use multimod from the .tools directory
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* precommit
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* factor instrumentation library out of the instrument descriptor
* SDK tests pass
* checkpoint work
* otlp and opencensus tests passing
* prometheus
* tests pass, working on lint
* lint applied: MetricReader->Reader
* comments
* Changelog
* Apply suggestions from code review
Co-authored-by: alrex <alrex.boten@gmail.com>
* remove an interdependency
* fix build
* re-indent one
* Apply suggestions from code review
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Lint&feedback
* update after rename
* comment fix
* style fix for meter options
* remove libraryReader, let Controller implement the reader API directly
* rename 'impl' field to 'provider'
* remove a type assertion
* move metric/registry into internal; move registry.MeterProvider into metric controller
* add test for controller registry function
* CheckpointSet->Reader everywhere
* lint
* remove two unnecessary accessor methods; Controller implements MeterProvider and InstrumentationLibraryReader directly, no need to get these
* use a sync.Map
* ensure the initOnce is always called; handle multiple errors
* Apply suggestions from code review
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* cleanup locking in metrictest
* Revert "ensure the initOnce is always called; handle multiple errors"
This reverts commit 3356eb5ed0.
* Revert "use a sync.Map"
This reverts commit ea7bc599bd.
* restore the TODO about sync.Map
Co-authored-by: alrex <alrex.boten@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update versions file for 1.0.0 release
* Prepare stable-v1 for version v1.0.0
* Update trace signal status in documentation
* Update changelog
* Update CHANGELOG.md
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
* Update release versions
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare experimental-metrics for version v0.23.0
* Prepare bridge for version v0.23.0
* Prepare stable-v1 for version v1.0.0-RC3
* Update CHANGELOG
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Refactor startSpanInternal into a tracer method
The span creation and configuration process is split across the tracer
Start method and the startSpanInternal function, each living in
different files. This adds confusion when developing. It requires the
developer to remember certain parts of the configuration happen in one
place or the other.
This unifies the creation and configuration of a new span. It makes this
unification by creating a newSpan method on the tracer. This method will
do all the configuration needed for a new span other than setting the
execution task tracker. This remains a part of the Start method to
preserve any existing timing and tracing the already exists.
* Add a non-recording span to the SDK
* Assign returned context from runtime trace task
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update the website getting started docs
Add a new example, fib, that contains an application for the computation
of Fibonacci numbers. Use this example to update the website getting
started documentation.
* Revise docs english
* Update example/fib/go.mod
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add a What's Next section
* Clean up intro
* Apply suggestions from code review
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Apply feedback
* Return from Poll on error
* Update website_docs/getting-started.md
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
* Add root and parent relationship info
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
* s/ValueRecorder/Histogram/g
* s/ValueObserver/GaugeObserver/g
* s/UpDownSumObserver/UpDownCounterObserver/g
* s/SumObserver/CounterObserver/g
* changelog
* pr num
* unstable->experimental
* Apply suggestions from code review
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Apply suggestions from code review
* apply feedback from @evantorrie by hand
* Apply suggestions from code review
Thanks
Co-authored-by: ET <evantorrie@users.noreply.github.com>
* Update sdk/export/metric/metric.go
* Apply suggestions from code review
Thank you @evantorrie !
Co-authored-by: ET <evantorrie@users.noreply.github.com>
* revert getting-started fix let tyler's update remove this text
* more variable name fixes
* test repair
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: ET <evantorrie@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update trace API config creation funcs
Follow our style guide and return the config struct instead of pointers.
* Update changelog with changes
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Make the tracetest.SpanRecorder concurrent safe
The otelgrpc instrumentation in the contrib repository needs a
concurrent safe implementation as the stream testing is done in a
separate goroutine.
* Refactor concurrency tests
* Deprecate Array attribute in favor of *Slice types
* Use new attr types in Jaeger exporter
* Use slice attr types in otlpmetric
* Use slice attr types in otlptrace
* Use slice attr types in zipkin exporter
* Remove array attr test from deprectated oteltest func
* Use StringSlice for cmd arg resource attr
* Add changes to the changelog
* Remove use of deprecated Array func
* Move InstrumentKind into the new metric/sdkapi package
* remove the alias
* remove the alias (everywhere)
* Changelog
* Add a test
* merge updates
* fix changelog
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Use the default SDK to test the OpenCensus bridge. In order to not add
the SDK as a dependency to the bridge module and require users to depend
on it if they use the bridge these tests are moved to a new dedicated
test module.
* fix(2138): add guard to constructOTResources to return an empty resource when attributes are not supplied
Fixes: https://github.com/open-telemetry/opentelemetry-go/issues/2138
* Update CHANGELOG.md
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Deprecate oteltest.Harness for removal
* Add changes to changelog
* Alias oteltest.Harness to internaltest
* Update oteltest/tracer_test.go
remove `oteltest` import.
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Removed DroppedAttributeCount field from Link struct
* Reintroduced DroppedAttributeCount with a wrapper struct
* Added Link type in otel/sdk package and used it instead of Trace API equivalent
* Added changelog entry
* Linting fix in changelog
* Deleted duplicated changelog section added by mistake
* Expanded changelog entry and moved it under the 'Added' section
* Explicitly mentioned otel/trace library in changelog entry under 'Removed' section to avoid ambiguity
* remove resource.WithBuiltinDetectors() which has not been maintained
* add changelog file
* Update CHANGELOG.md
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
* resolved a repeated conflict
* fix unittest error
* fix unittest error
* fix the PR according to suggestion
* fix unittest fail and del repeated testcase in CI system
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Added explicit mapping between GOOS and semconv OS type attribute value
* Added tests for OS type mappings
* Added changelog entry
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Added Linux-specific detector for the os.description attribute
* Generalized OS description detector with placeholder function for unimplemented OSes
* Extended osDescription function to *nix OSes based on golang.org/x/sys/unix
* Added WithOS resource configuration function to configure all of the OS resource attributes
* Implemented osDescription funtion for Windows OS
* Improved documentation header for *nix version of the osDescription function
* Added support for reading os-release file
* Added/updated documentation headers for *nix implementation of osDescription and related functions
* Changelog update
* Added support for reading macOS version information
* Mock approach to test OS description attribute
* Extracted common function getFirstAvailableFile to read the first available file from a list of candidates
* Upgraded golang.org/x/sys
* Changelog update
* Fixed wrong function name in documentation header for WithOSDescription
* Updated documentation header for platformOSDescription function
* Renamed restoreProcessAttributesProviders test helper function
The function restoreProcessAttributesProviders was renamed to simply
restoreAttributesProviders to better reflect its broader scope, which
not only applies to process attribute's providers.
* Fixed os_linux.go overriding build tags defined inside the file
The suffix on os_linux.go was overriding the build tags already defined
in that file. The file was renamed to os_release_unix.go, reflecting
the main function defined in the file.
For consistency, os_darwin.go was renamed to os_release_darwing.go, as
its primary purpose is to also define the osRelease function.
* Removed use of discontinued function resource.WithoutBuiltin
* Added PR number to changelog entries
* Updated go.sum files after run of make lint
* Linux implementation: ignore lines with an empty key
* Linux implementation: avoid unquoting strings less than two chars
* WIP: added tests for Linux support functions
* WIP: added tests for charsToString and getFirstAvailableFile functions
* Replaced os.CreateTemp with ioutil.TempFile as the former only exists in Go 1.16
* Added unameProvider type to decouple direct reference to unix.Uname function inside Uname()
* Added tests for Uname() function
* Replaced *os.File with io.Reader in parseOSReleaseFile to ease testing
* Added tests for parseOSReleaseFile function
* Darwin implementation: added tests for buildOSRelease function
* Replaced *os.File with io.Reader in parsePlistFile to ease testing
* Darwin implementation: added tests for parsePlistFile function
* Type in documentation header for Linux osRelease function
* Extracted logic for reading specific registry values into helper functions
* Added basic tests for Windows version of platformOSDescription and helper functions
* Manually formatted uint64 to strings to have an uniform interface for test assertions
* Asserts there's no error when opening registry key for testing
Co-authored-by: Robert Pająk <pellared@hotmail.com>
* Simplified subtests by using a single test with multiple asserts
* go.sum update after running make
* Fix typo
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* WIP: added placeholder implementation of platformOSDescription for unsupported OSes
* Fixed typo on osRelease documentation header
Co-authored-by: Chris Bandy <bandy.chris@gmail.com>
* Fixed typo on test case name for ParsePlistFile tests
Co-authored-by: Chris Bandy <bandy.chris@gmail.com>
* Linter fix in changelog
* go.sum updates after running make
* Used strings.Replacer instead of multiple strings.ReplaceAll calls
* Optimized implementation of charsToString
* Safer temporary file deletion with t.TempDir()
* Used t.Cleanup() for safer mocking of runtime providers in OS resource tests
* Handled optionality of DisplayVersion registry key.
For example, CI machine runs on:
Windows Server 2019 Datacenter (1809) [Version 10.0.17763.1999]
So, to not add an extra white space due to missing DisplayVersion,
this value is checked to be not empty, and only in such case a
trailing space is added for that component.
* Workaround to handle the case of DisplayVersion registry key not present
* Excluded unsupported GOOSes by negation of supported ones
* go.sum update after running make
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Chris Bandy <bandy.chris@gmail.com>
* add HTTP support for OTLP metrics exporter
* add to changelog
* fix unit test not covered before
* add otlpmetrichttp module to .github/dependabot.yml
* add test file for client.go
* run make commit to clean repository
* fix err occurs in TestCancelledContext
* fix err in TestCancelledContext which is nil
* fix err in TestCancelledContext which is nil, occurs occasionally
* fix unittest err in TestCancelledContext which occurs occasionally
* fix ineffectual assignment to err when running lint
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update exporters/otlp/otlpmetric/otlpmetrichttp/doc.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update exporters/otlp/otlpmetric/otlpmetrichttp/doc.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* del options that not used in http exporter metrics
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Ensure that no-op tracer still progates non-recording spans
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Add `TracerProvider` to the `trace.Span` interface
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Remove config from oteltest.Tracer as it can be accessed through the provider
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Split stdout exporter into stdouttrace and stdoutmetric
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Remove unused options from stdouttrace and stdoutmetric exporters
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update stdout exporter references in website docs
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update docs to include correct import paths, properly describe exporter scope
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Remove pointless options to disable signals from what are now single-signal exporters
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Rename exporters/metric/prometheus
* Rename exporters/trace/jaeger
* Rename exporters/trace/zipkin
* Fix dependabot config and make test
* Update README docs
* Deprecate exporters instead of remove them
* Update dependabot with old modules
* Run crosslink
* Add lint override for known deprecated pkg
* Update PR number
* Remove trace export support from exporters/otlp
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update otlp exporter example test to use metric/global package
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* completely excise exporters/otlp
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Declare internal/metric module to version it separately
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Remove dependency on metrics module from soon-to-be-stable modules
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Add PR ID to CHANGELOG
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* rename metric/oteltest to metric/metrictest
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Fix metrictest package name in CHANGELOG
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Test the export timeout by waiting indefinitely for the export to
timeout instead of having a second timer, in its own goroutine, timeout.
The algorithm this replaces fails on machines that are slow and the one
meta-timer is given priority to progress over the export timer that is
being testing, resulting in a false-negative test result.
Move the testing of a BatchSpanProcessor export timeout to its own test
function. This removes the bloat this introduces to the other testing
options and allows customization that enable the testing in a
deterministic manner.
This implements specification requirement:
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/sdk.md#resource-creation
- Changes `resource.NewWithAttributes` to require a schema URL. The old function
is still available as `resource.NewSchemaless`. This is a breaking change.
We want to encourage using schema URL and make it a conscious choice to have a
resource without schema.
- Merge schema URLs acccording to the spec in resource.Merge.
- Several builtin resource detectors now correctly populate the schema URL.
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* sdk/resource: honor OTEL_SERVICE_NAME in fromEnv resource detector
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* go fmt is still my friend, even if I forget about it occasionally
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Fix import ordering
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
This adds support for schema URL to the Tracer according to the specification:
https://github.com/open-telemetry/opentelemetry-specification/pull/1666
(Link to replaced by the link to the spec after that PR is merged)
For the future: once the proto is updated we will need to populate the
schema_url field in the messages.
* Refactor TraceState
* Update tracecontext propagator to use new TraceState
* Add TraceStateFromKeyValues to oteltest
* Use oteltest to test TraceState
* Replace IsEmpty with Len for TraceState
* Replace ParseTraceState with ParseTraceStateString
* Clean up naming
* Add immutability test for TraceState
* Add changes to changelog
* Fixes
* Document argument type change in changelog
* Address feedback
Remove circularity of TestTraceStateLen.
* Remove TODO from ReadOnlySpan interface
* Remove the Tracer method from the ReadOnlySpan
This is not required by the specification nor the use of this interface.
* Remove IsRecording from the ReadOnlySpan interface
A read-only span value does not need to know if updates to it will be
recorded. It by definition cannot be updated so no point in
communicating if an update would be recorded.
* Document the ReadOnlySpan interface
* Rename messageEvent* to just event*
* Move the SpanSnapshot into its own file
* Update ReadOnlySpan interface with meta info methods
Add the DroppedAttributes, DroppedLinks, DroppedEvents, and
ChildSpanCount methods to the interface to return additional information
about the span not specified by the specification, but that we are
already providing.
* Add SpanStub to the sdk/trace/tracetest pkg
* Redefine ExportSpans of SpanExporter with ReadOnlySpan
* Rename SpanSnapshot to snapshot and purge docs
* Remove Snapshot method from snapshot type
This method is a hold-over from previous version of the ReadOnlySpan
interface is not needed.
* Update CHANGELOG with changes
Add Status type to SDK
Use this type to encapsulate the Span status similar to the Event type
encapsulating a Span event and the Link type a span link.
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Removed different types of Detectors for Resources.
This change simplifies different types of collectors into one list. The
order of this list determines how they are applied. Defaults are
applied when the user does not supply any detectors. To achieve
default behavior and additional behavior a DefaultDetectors struct has been
created
* missed prometheus test.
* Changed behavior around WithDetectors(nil)
Added examples of use of WithDetectors.
* Added NoOp example
* Changed test to reflect acutal default case
This changes because WithDetector() no longer is the same as not using WithDetector()
* Unexports the noOp detector
* Updated changelog
* Fixes to spelling mistakes.
* Added NewEmptyResouce and unexported builtin detectors
* Fix for prometheus example
* Resource has two Rs
I need to get a new R key it seems.
Co-authored-by: Sam Xie <xsambundy@gmail.com>
* Replaced NewEmptyResource() with New()
* Fix test function name
* Comment fixups.
* Apply suggestions from code review
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Sam Xie <xsambundy@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Move the Event type from the API to the SDK
This type is not used in the API. It is used in the SDK and then through
the processing pipelines. Move it to the package that originates its use.
* Add changes to changelog
* Update CHANGELOG.md
Co-authored-by: Gustavo Silva Paiva <guustavo.paiva@gmail.com>
Co-authored-by: Gustavo Silva Paiva <guustavo.paiva@gmail.com>
* drop failed to exporter batches and return error when forcing flush a span processor
* changelog
* changelog
* change should export condition
* cleanup
* Honor context Done in SSP Shutdown
* Update PR number in changelog
* Update comment
* Add tests
* Make tests more concise
* Restructure tests for readability
* WIP: OS and Process resource detectors
* Completed documentation headers
* Added empty test files for OS and Process resource functions
* Split long line
* Added resource.WithOS function test
* Added resource.WithProcess* functions tests
* Renamed osDetector and WithOS function to better reflect they only add the os.type attribute
* Updated changelog
* WIP: possible use of wrappers for getting attribute values
* Refined implementation of wrapper functions providing os/runtime/user information
* Added PR number to new changelog entries
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Fix wrong function name in documentation header
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Fixed wording in WithProcessOwner documentation header
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Updated osTypeDetector
* Replaced ToUpper with ToLower to match the current convention.
* Used runtimeOS provider to get the OS name.
* Adapted WithOSType test to mock runtime providers
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* updated controller to merge default resource with environment resource
* updated TracerProvider to merge default resource with environment resource
* Added Changelog entry
* Added resource.Environment(), modified resource.Default() for environment vairable and WithResource() configuration for TracerProvider and Controller
* Update CHANGELOG.md
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Moved environment detector to defaultResource initialization, added test cases
* Changes to default resource initialization
* made changes to the test cases
* added merging of resource with environment resource
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add SpanProcessor example for Span annotation on start
* Remove New* func to make more concise
* Add doc for AttrsFunc
* Move overview comment to top
* Update based on feedback
* Remove AttrsFunc type
* Use OnEnd to print instead of separate exporter
* Move the tracer declaration
* Made copy of attribute.KeyValue
* Add comments and test
* move test to sdk/metric
* Update CHANGELOG.md
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Add label order assertions for final results
* Update CHANGELOG PR number
* Revert code changes and update docs
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add test to check bsp ignores OnEnd and ForceFlush post shutdown
* Add to CHANGELOG
* Check for err return value
* Stop test execution if there's error with shutting down bsp
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Use assert to check there's no error calling bsp.ForceFlush()
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Import require
* Add error message for assertion on be.len()
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Make TraceFlags spec-compliant
* Remove `trace.FlagsDebug` and `trace.FlagsDeferred`
* These are used only by the B3 propagator and will be handled there in the `context.Context`
* Make `trace.TraceFlags` a defined type, aliasing `byte`
* Move `IsSampled` method from `trace.SpanContext` to `trace.TraceFlags`
* Add `Sampled(bool)` method to `trace.TraceFlags`
* Implement `Stringer` and `json.Marshaler` for `trace.TraceFlags`
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Rename `TraceFlags.Sampled()` to `TraceFlags.WithSampled()` for consistency
* Restore `SpanContext.IsSampled()` method.
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
Adds support for the opentelemetry exceptions semantic conventions. In
short, this has RecordError produce an exception event with exception
attributes instead of using the error event and error attributes.
While golang does not have exceptions, the spec itself does not
differentiate between errors and exceptions for recording purposes.
RecordError was kept as the method name, both for backwards
compatibility and to reduce confusion (the method signature takes in a
golang error object). The spec appears to allow this, as it suggests the
method is optional and signature may reflect whatever is most appropriate
for the language implementing it.
It may seem non-intuitive to log an exception event from a method called
RecordError, but it's beneficial to have consistent behavior across all
opentelemetry SDKs. Downstream projects like the opentelemetry-collector
can build off of the published API and not special case behaviors from
individual languages.
* Adjust TestRecording fucntion to validate with and without sampling. correct span.isRecording logic to return false when not being sampled
* Changed to TestExectutionTracerTaskEnd to only expect 1 span to increment instead of all 3
* added changelog entry
* Updated CHANGELOG.md
* Remove newline from isRecording()
* Rewrite TestSpanIsRecording to include table based
tests and check for when span is ended immediately
* Update sdk/trace/trace_test.go
Improve readability of test name
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update sdk/trace/trace_test.go
Improve readability of test name
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update sdk/trace_test.go test comments
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update SamplingParameters
Remove HasRemoteParent fields from SamplingParameters. The
HasRemoteParent field is a duplicate of the Remote field of the parent
span context contained in the ParentContext.
Change the `ParentContext` field from storing a `SpanContext` to a
`context.Context` that holds the parent span. This is to conform with
the OpenTelemetry specification and resolve#1727.
* Update PR number
* Update SpanSnapshot to use parent SpanContext
Having only the parent span ID and a separate field to communicate if
the parent was remote does not provide a comprehensive view of the
parent span nor is it an efficient way to transmit this information.
Update the SpanSnapshot to have a `Parent` field that contains the
parent span context. This field replaces the ParentSpanID and
HasRemoteParent fields.
* Revert SamplingParameters span change
* Update CHANGELOG with PR number
* Store Span instead of local/remote SpanContext in Context
Now that the SpanContext has a remote identifier, storing a Span's
SpanContext two separate ways in a Context (one for local another for
remote) is unnecessary and adds complication throughout the project when
determining heredity of a Span. This moves to storing the Span directly
in the Context uniformly (for both local and remote) as current Span. In
the process, it updates the getter/setter functionality the `trace`
package provides and replaces the distributed heredity logic throughout
the project with just using the current Span as the parent if it exists.
* Update trace/context.go
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Assert propagators context remote state
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
* Remove links on NewRoot spans
To ensure forwards compatibility, remove the unspecified links currently
set on `NewRoot` spans.
Resolves#461
* Remove links from oteltest tracer to match
The makeSamplingDecision function is a wrapper around the provider
sampler calling ShouldSample with a duplicate configuration struct. That
duplication and need for translation as well as the addition function
call is unnecessary, this function is called in only one place.
Resolves#1706
This patch removes `ApplyConfig` method and `Config` struct from
`go.opentelemetry.io/otel/sdk/trace` package. To ensure valid config
for TracerProvider, it adds `ensureValidTracerProviderConfig` private
function.
Jaeger and Zipkin have been used the `Config` directly across package
boundaries. Since `Config` is removed, they can't use it. This change,
thus, replaces `WithSDK` with `WithSDKOptions`.
Resolves#1636, #1705.
* Rename WithDefaultSampler TracerProvider option to WithSampler
The term "DefaultSampler" comes from early ideas of this project where
there would be overriding samplers lower in the trace SDK. This
overriding does not exist and if it is going to be introduced in the
future the sampler associated with the TracerProvider is already scoped
based on that association (no need to scope with a name). This renames
the TracerProvider option to not include this anachronism.
* Update PR number in CHANGELOG
* Propagate rename
* Update defaults documentation for TracerProvider
* Update sdk/trace/provider.go
Co-authored-by: Steven E. Harris <seh@panix.com>
* Update sdk/trace/provider.go
Co-authored-by: Steven E. Harris <seh@panix.com>
* Add remote property to SpanContext
* Set SpanContext.remote when extracting context in TraceContext propagator
* Ensure remote flag is set when inserting remote SpanContext into context
* Ensure tests are expecting remote flag in SpanContext where appropriate
* Update CHANGELOG.md
* Apply PR feedback
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add Valid method to KeyValue
* Use KeyValue.Valid in attribute add on Span
* Resource StringDetector errors for invalid attribute
* Ignore invalid attr in NewWithAttributes
The OpenTelemetry specification requires attributes conform to a
standard evaluated and returned by attribute.KeyValue.Valid. To comply
with the specification, Resources created from NewWithAttributes need to
only contain valid attributes. This adds a check to ensure this and
drops invalid attributes passed as arguments.
* Add changes to changelog
* Add nolint comment
The attribute.Set is (possibly overly) optimized to avoid allocations.
The returned value from the constructor is a value of a Set, not a
pointer to the Set. A Set contains a lock value and pointer methods so
passing the Set value raises the copylock go vet error. This copies the
same nolint comment from the `NewSet` method this used to use.
* Apply suggestions from code review
Co-authored-by: Sam Xie <xsambundy@gmail.com>
Co-authored-by: Sam Xie <xsambundy@gmail.com>
* Rename resource pkg label vars and methods
The former `labels` package is now named `attributes` to conform with
the specification requirement. This removes the lingering `label` term
from the `resource` package.
Resolve https://github.com/open-telemetry/opentelemetry-go/issues/1691
* Update PR number in CHANGELOG
* Propagate rename to the prometheus exporter pkg
* Remove `WithRecord()` option from SpanConfig options
This brings the trace API into conformance with the specification.
* Add entry to CHANGELOG
Fixes#192
* Updated CHANGELOG with PR#
* Cleaned up CHANGELOG notes
* fixup! Merge remote-tracking branch 'upstream/main' into remove-with-record
* Use new spanContext API to set traceflags, tracestate
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Make SpanContext Immutable
* Adds NewSpanContext() constructor and SpanContextConfig{} struct for
constructing a new SpanContext when all fields are known
* Adds With<field>() methods to SpanContext for deriving a SpanContext
with a single field changed.
* Updates all uses of SpanContext to use the new API
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Add tests for new SpanContext constructor and derivation
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Address PR feedback
* Fix new uses of SpanContext from main
* sdk/trace: add missing options to tracer provider
This change adds `WithDefaultSampler` and `WithSpanLimits` to the tracer
provider and removed `WithConfig` from it.
Before this change, `WithConfig` is the only way to set sampler or
limits of a span. However, it is prone to misuse, since `WithConfig` can
override tracing configurations that are configured by `WithResource` or
`WithIDGenerator`. Thus to fix this, it adds new functional options -
`WithDefaultSampler` and `WithSpanLimits` and removes `WithConfig`.
Resolves#1631.
* Update sdk/trace/provider.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update sdk/trace/provider.go
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* rebase and remove WithConfig
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add ForceFlush method to TracerProvider
The specification requires that a TracerProvider have a ForceFlush
method that can be set with a timeout, return any error to the caller,
and have all the registered span processors export their spans. This
updates the SpanProcessor.ForceFlush method to accept a context and
return an error and plumbs this method into a new ForceFlush method of
the SDK TracerProvider.
Additionally, this corrects the TracerProvider Shutdown method. This
method as well needs to return to the caller any failure it encounters
according to the specification. This returns an error if it cannot type
assert the spanProcessorStates or if shutting down a span processor
results in an error.
Resolves#1606
* Add changes to changelog
* Apply suggestions from code review
Co-authored-by: Steven E. Harris <seh@panix.com>
* Cancel export context when BSP stops
* Defer cancel call in BSP span processor funcs
Co-authored-by: Steven E. Harris <seh@panix.com>
to provide consistent naming across the code base, deprecate pusher in
favor of exporter naming convention.
Signed-off-by: ldelossa <ldelossa@redhat.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update the SimpleSpanProcessor
Subsequent calls to OnStart, OnEnd, and ForceFlush should be ignored
gracefully once Shutdown has been called. This implements that behavior
by shutting down the exporter and removing it from the
SimpleSpanProcessor so subsequent calls to OnEnd will be no-ops.
* Add changes to changelog
* Lock in sync.Once of shutdown instead of Shutdown scope
* Update CHANGELOG.md
Co-authored-by: Steven E. Harris <seh@panix.com>
* Release exporterMu before shutdown exporter
* Move changes to unreleased section of changelog
* Update simple_span_processor.go
revert comment change from merge
Co-authored-by: Steven E. Harris <seh@panix.com>
* Fix#1658 SpanStatus description set only when status code is set to error
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add tests for propagation of Sampler Tracestate changes
Sampler specification indicates that SamplingResult.Tracestate
should be associated with the SpanContext of the newly created span.
See
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#sampler
* Fix SamplingResult TraceState propagation
* Add Changelog entry
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Make timestamps sequential in lastvalue agg check
* Set PR number in changelog
* Fix location of sleep
The lastvalue timestamp is set on update. Correct the location of the
sleep to bridge the update of the two different aggregators.
* Stagger timestamps in exact aggregator tests
Fixes#1559.
* Missed one
* Yield while you wait
* Just sleep for a teeny tiny bit
* Oops, wrong PR in Changelog
* Make sure that *some* time passes
* Keep time comparisons relaxed
* Vendor Thrift dependency
* Fix build
* Changelog entry
* Ignore third_party for coverage purposes
* Re-run tests
* Re-run tests
* Re-run tests
* Re-run tests
* Relax time comparisons
Fixes#1559.
Some unit tests were flaking in CI because they expected the timestamp
to advance during a test, when it's possible for it to be unchanged
instead. This change switches the offending "<" comparisons to "<=".
* Re-run tests
* Relax more time comparisons
* Re-run tests
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
The spec makes it optional to attempt resampling when changing the name
of a span and we're not sure whether it can be done in an appropriate
manner, so it's best to not do it at all for now. We can try again
later if we find a good way to do it.
* Document SDK span ending stops recording
* Guard SDK span set methods with record check
* Document SDK span exported API
Make note of methods that do nothing if span is not recording.
* Document SDK span End recording check
* Document the SetName method