1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2024-12-14 10:13:10 +02:00
Commit Graph

897 Commits

Author SHA1 Message Date
Tyler Yahn
7026089a0e
Merge pull request #694 from Aneurysm9/tracestate_propagation
propagate at least the first w3c tracestate header
2020-05-04 15:59:31 -07:00
Anthony J Mirabella
7a605a3345 Add named capture groups to traceCtxRegExp, avoid potential panic when injecting tracestate 2020-05-04 16:34:07 -04:00
Stefan Prisca
75b4d68499 use golang table test setup 2020-05-04 10:22:31 +02:00
Stefan Prisca
4ad6e3b73f refactor tests to have single test method 2020-05-04 10:10:51 +02:00
tensorchen
ff2aa55a96 Alias api/global types, functions to root 2020-05-03 16:01:15 +08:00
tensorchen
bae2298a36 Rename trace.TraceID & trace.TraceIDFromHex 2020-05-03 13:48:38 +08:00
Anthony J Mirabella
1dc6bc09d4 propagate at least the first w3c tracestate header 2020-05-02 15:23:03 -04:00
Stefan Prisca
c8578e1512 address feedback 2020-05-02 14:50:11 +02:00
tensorchen
c6c155de6f Move SpanContext from core package into trace 2020-05-02 20:17:11 +08:00
Stefan Prisca
7c6554fc4d Merge branch 'master' of github.com:stefanprisca/opentelemetry-go into sp-master 2020-05-01 13:58:42 +02:00
Stefan Prisca
54f5c350a8 rename to make the tests more relevant 2020-05-01 13:53:05 +02:00
Stefan Prisca
1bd88dc455 Add tests for interceptor service attributes 2020-05-01 13:43:38 +02:00
Stefan Prisca
6ade533508 fix interceptor regexp 2020-05-01 11:12:52 +02:00
ET
34bd998963
Remove internal StateLocker implementation (#688)
Fixes #657

With the changes in #667 and #669 to use a plain-old-mutex for
concurrent access of Histogram and MinMaxSumCount aggregators,
the StateLocker implementation is no longer used in the project.

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-04-30 14:15:04 -07:00
Tyler Yahn
1176d9c0b3
Merge branch 'master' into master 2020-04-30 13:20:40 -07:00
Tyler Yahn
44bd7e9421
Merge pull request #690 from MrAlias/increase-circleci-size
Increase instance size for prior-go
2020-04-30 13:16:55 -07:00
Tyler Yahn
bad3655874
Upgrade size in current-go as well 2020-04-30 13:11:15 -07:00
Joshua MacDonald
bb2dcff242
Merge branch 'master' into increase-circleci-size 2020-04-30 13:06:22 -07:00
Joshua MacDonald
4c9a29d2d7
Add a key benchmark, use reflection in key.Infer() (#679)
* Add a key benchmark, optimize SDK SetAttribute

* Use reflect in key.Infer

* Move to separate benchmark file; remove pointer test; remove dead comment

* Run go mod tidy

* Add license header

* Use the reflect scalar accessors

Co-authored-by: Liz Fong-Jones <lizf@honeycomb.io>
2020-04-30 13:06:00 -07:00
Tyler Yahn
c8d46761be
Increase instance size for prior-go
Increase from the default medium (2vCPU 4GB) to medium+ (3vCPU 6GB).
This is to stop the OOM events identified in #685 from happening.
2020-04-30 13:00:59 -07:00
Liz Fong-Jones
a053038e52
propose a9 as approver (#687) 2020-04-30 13:32:57 -04:00
NiaoGe
f865a6c3d4
Fix Traceparent to traceparent (#681)
* Fix Traceparent to traceparent

* Fix unittest Traceparent to traceparent
2020-04-30 08:55:16 -07:00
Stefan Prisca
c3e9bdb214 fix interceptor regexp 2020-04-30 16:39:30 +02:00
Joshua MacDonald
d7b3c3d7e7
Fix and test uses of global.Meter with RecordBatch() (#680)
* Test use of global.Meter.RecordBatch

* Avoid new dep
2020-04-29 16:13:55 -07:00
Anthony Mirabella
973b38607b
Create basic othttp.Transport for simple client instrumentation (#678)
* Create basic othttp.Transport for simple client instrumentation

* change props to propagators for clarity

* Add othttp.Transport usage example

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-04-29 13:17:05 -07:00
ET
e4ec924b25
Reimplement histogram using mutex instead of stateLocker (#669)
* Reimplement histogram using mutex instead of stateLocker

Move existing implementation to histogram_statelocker.go. Implement
benchmarks for single thread and parallel histogram updates comparing
mutex version to stateLocker version

* Drop statelocker implementation and alignment tests, benchmarks

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-04-29 10:08:58 -07:00
ET
bd16ce0cfa
Switch MinMaxSumCount to a mutex lock instead of StateLocker (#667)
* Switch MinMaxSumCount to a mutex lock instead of StateLocker

With multiple values being modified for each Update(), a single mutex
lock and non-atomic operations ends up being faster than making each
value update into an atomic operation.

* Remove StateLocker implementation and comparison benchmarks

* Remove field offset tests. No longer required with no atomics.

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-04-28 18:27:13 -07:00
Liz Fong-Jones
ee30252752
add SetAttribute(string,interface{}) (#674) 2020-04-28 14:24:47 -07:00
ET
3809f7bba3
Remove references in godoc comments to WithKeys (#672)
* Remove references in godoc comments to WithKeys

WithKeys was removed in PR#639

* Apply suggestions from code review

Fix copy pasta

Co-Authored-By: Tyler Yahn <MrAlias@users.noreply.github.com>

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-04-28 12:29:48 -07:00
Igor German
5863f8562b
Add jaeger option that allows to specify custom http client (#671) 2020-04-28 14:35:34 -04:00
Krzesimir Nowak
22653957f2
Bump golangci-lint again (#670) 2020-04-28 14:30:31 -04:00
ET
1e057dfc4f
Two tiny character transposes /Mulitple/Multiple/ (#668) 2020-04-27 16:07:14 -07:00
Krzesimir Nowak
c23e09c7f7
Fix clobbering of the span context if extraction fails (#656)
* Do not put span context into go context if extraction failed

This causes problems if multiple trace propagators are chained,
because the first propagator in chain may extract a valid span
context, then next propagator will overwrite it with an empty span
context when required headers in supplier are missing.

* Test for clobbering propagators

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-04-27 11:37:40 -07:00
Krzesimir Nowak
e21dfa28c6
Bump golangci-lint and work around the corrupting bug (#666)
* Bump golangci-lint to 1.25

* Skip the "unused" linter when running golangci-lint in --fix mode

This linter seems to provide bogus fix-up information to
golangci-lint, which results in file corruption instead of fixing the
issue. Since we are going to run the linter again anyway, but without
the --fix mode, skip the "unused" linter explicitly for the first run
- it will still have a chance to report errors on the second run.
2020-04-27 11:28:50 -07:00
Liz Fong-Jones
33e60677db
[key] add Stringer and Infer methods (#662)
* add Stringer and Infer methods

* fix nit

* Update api/key/key.go

Co-Authored-By: Tyler Yahn <MrAlias@users.noreply.github.com>

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2020-04-24 16:40:49 -07:00
Rahul Patel
1de7f68bfc
Prepare for releasing v0.4.3 (#664) 2020-04-24 15:24:00 -07:00
Rahul Patel
52b253480a
Update Maintainer for Otel Go. (#660)
* Update Maintainer for Otel Go.
- Replace Rahul Patel with Tyler Yahn as maintainer.

* Update CODEOWNERS

* Update CODEOWNERS

Co-authored-by: Liz Fong-Jones <lizf@honeycomb.io>
2020-04-24 10:59:15 -07:00
Joshua MacDonald
3008c1bf02
Pass Resources through the metrics export pipeline (#659) 2020-04-24 09:44:21 -07:00
Joshua MacDonald
cd1be0e698
Use the label.Set.Equivalent value instead of an encoding in the batcher (#658) 2020-04-24 09:32:49 -07:00
Andrew Hsu
6402598a1f
add Dockerfile and docker-compose.yml to run example code (#635)
* add optional server url arg to http client example

Signed-off-by: Andrew Hsu <xuzuan@gmail.com>

* add Dockerfile to build example http images

Multi-stage Dockerfile with targets for building example http server and
client.

  $ docker build --tag the-server --target example-http-server .
  $ docker build --tag the-client --target example-http-client .

Signed-off-by: Andrew Hsu <xuzuan@gmail.com>

* add docker-compose.yml file for running examples

This docker compose configuration file will help a new user to compile
and run the example code quickly. Uses the Dockerfile to build images
with compiled examples.

  $ docker-compose build http-server http-client
  $ docker-compose up http-server http-client

Signed-off-by: Andrew Hsu <xuzuan@gmail.com>

* add newline to last message of example http client

Signed-off-by: Andrew Hsu <xuzuan@gmail.com>

* add optional collector url arg to zipkin client example

Signed-off-by: Andrew Hsu <xuzuan@gmail.com>

* add Dockerfile target to build zipkin client

For building the example zipkin client:

  $ docker build --tag zipkin-client --target example-zipkin-client .

Signed-off-by: Andrew Hsu <xuzuan@gmail.com>

* add docker compose service to run zipkin examples

Services to run the zipkin client along with a zipkin collector:

  $ docker-compose build zipkin-client
  $ docker-compose up zipkin-collector zipkin-client

Since the zipkin collector takes a few seconds before it is ready to
receive traces, I added a simple retry loop to the client command.

The collector service exposes port 9411 so user can visit
http//localhost:9411/ to see the trace sent to the collector. Be sure to
search by the trace id logged by the client.

Signed-off-by: Andrew Hsu <xuzuan@gmail.com>

* Update Dockerfile with AL2 declaration

As described in https://www.apache.org/licenses/LICENSE-2.0#apply

Co-Authored-By: Tyler Yahn <MrAlias@users.noreply.github.com>

* Update docker-compose.yml with AL2 declaration

As described in https://www.apache.org/licenses/LICENSE-2.0#apply

Co-Authored-By: Tyler Yahn <MrAlias@users.noreply.github.com>

* pass server url as flag in example http client

  $ ./client -h
  Usage of ./client:
    -server string
          server url (default "http://localhost:7777/hello")

Signed-off-by: Andrew Hsu <xuzuan@gmail.com>

* pass zipkin url as flag in example zipkin client

  $ ./zipkin -h
  Usage of ./zipkin:
    -zipkin string
          zipkin url (default "http://localhost:9411/api/v2/spans")

Signed-off-by: Andrew Hsu <xuzuan@gmail.com>

* move Dockerfile and docker-compose.yml into example dir

Signed-off-by: Andrew Hsu <xuzuan@gmail.com>

* add Dockerfile and docker-compose.yml for zipkin example

Signed-off-by: Andrew Hsu <xuzuan@gmail.com>

* update zipkin example README.md

With instructions on how to use docker-compose to run the example.

Signed-off-by: Andrew Hsu <xuzuan@gmail.com>

* add http example README.md

With instructions on how to use docker-compose to run the example.

Signed-off-by: Andrew Hsu <xuzuan@gmail.com>

* Update example/http/Dockerfile WORKDIR

Co-Authored-By: Krzesimir Nowak <qdlacz@gmail.com>

* Update example/http/Dockerfile RUN go install

Co-Authored-By: Krzesimir Nowak <qdlacz@gmail.com>

* Update example/http/Dockerfile RUN go install

Co-Authored-By: Krzesimir Nowak <qdlacz@gmail.com>

* Update example/zipkin/Dockerfile WORKDIR

Co-Authored-By: Krzesimir Nowak <qdlacz@gmail.com>

* Update example/zipkin/Dockerfile RUN go install

Co-Authored-By: Krzesimir Nowak <qdlacz@gmail.com>

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Krzesimir Nowak <qdlacz@gmail.com>
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-04-23 13:11:24 -07:00
Paul Reichelt
6de3dab6b6
Resolve #72 - gRPC Interceptor (#621)
* Move interceptor to plugin

* Add basic net.peer info

* Ensure that grpc status match span status

See: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/data-rpc.md#status

* Set rpc.service attribute

* Add StreamClientInterceptor and StreamServerInterceptor

* Fix: golint errors

* Apply automated go.mod changes from make

* Implement suggestions to improve readability
2020-04-23 13:07:14 -07:00
Joshua MacDonald
0bb12d9b1b
New api/label package, common label set impl (#651)
* New label set API

* Checkpoint

* Remove label.Labels interface

* Fix trace

* Remove label storage

* Restore metric_test.go

* Tidy tests

* More comments

* More comments

* Same changes as 654

* Checkpoint

* Fix batch labels

* Avoid Resource.Attributes() where possible

* Update comments and restore order in resource.go

* From feedback

* From feedback

* Move iterator_test & feedback

* Strenghten the label.Set test

* Feedback on typos

* Fix the set test per @krnowak

* Nit
2020-04-23 12:10:58 -07:00
Joshua MacDonald
acb350b8f3
Support JSON marshal of Resources (#654)
* Support JSON marshal of Resources

* Add a test

* Another test

* Fix arch bug

* Fix other test
2020-04-22 14:32:58 -07:00
NiaoGe
d20fc722f2
Fix typo trace.Exporter to trace.SpanSyncer (#653)
Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-04-21 20:34:53 -07:00
Milad
ddad4d45ae
trace exporter: using type names for return values (#648)
* trace exporter: using type names for return values

* Update jaeger.go

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-04-21 20:30:57 -07:00
Krzesimir Nowak
927d9155ae
Increase the visibility of the api/key package (#650)
* Point to the convenience functions in api/key package

This is to increase the visibility of the api/key package through the
api/core package, otherwise developers often tend to miss the api/key
package altogether and write `core.Key(name).TYPE(value)` and complain
at the verbosity of such a construction. The api/key package would
allow them to write `key.TYPE(name, value)`.

* Use the api/key package where applicable

This transforms all the uses of `core.Key(name).TYPE(value)` to
`key.TYPE(name, value)`. This also should help increasing the
visibility of the api/key package for developers reading the otel-go
code.

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2020-04-21 20:26:51 -07:00
Joshua MacDonald
395440db10
Checkpoint only after Update; Keep records in the sync.Map longer (#647)
* Add a test

* Benchmark

* Ensure records can persist across intervals

* Remove dead code

* Address feedback, refactor & eliminate race
2020-04-21 20:23:15 -07:00
Joshua MacDonald
e554562513
Do not cache reflect.ValueOf() in metrics Labels (#649)
* Benchmark label iterator

* Remove cachedValue, a minor optimization
2020-04-20 20:29:46 -07:00
Oleg Shatnyuk
cf7c4e5328
fix zipkin without local endpoint with service name (#644) 2020-04-18 23:02:29 -07:00
Shouri Piratla
669d4b3a6c
TraceID and SpanID implementations for Stringer Interface (#642)
* TraceID and SpanID implementations for Stringer Interface

* Hex encode while stringifying

* Modify format specifiers wherever SpanID is used

* comment changes

* Remove TraceIdString() and SpanIdString()

* Comments Fixes
2020-04-16 15:42:48 -07:00