Skip to content

Commit

Permalink
vendor: update OpenTelemetry to v0.20.0
Browse files Browse the repository at this point in the history
Update OpenTelemetry from v0.15.0 to v0.20.0.

    Git log

    02d8bdd5 Release v0.20.0 (kata-containers#1837)
    aa66fe75 OS and Process resource detectors (kata-containers#1788)
    7374d679 Fix Links documents (kata-containers#1835)
    856f5b84 Add feature request issue template (kata-containers#1831)
    0fdc3d78 Remove bundler from Jaeger exporter (kata-containers#1830)
    738ef11e Fix flaky global ErrorHandler delegation test (kata-containers#1829)
    e43d9c00  Update Default Value for Jaeger Exporter Endpoint  (kata-containers#1824)
    0032bd64 Fix default merging of resource attributes from environment variable (kata-containers#1785)
    96c5e4ba Add SpanProcessor example for Span annotation on start (kata-containers#1733)
    543c8144 Remove the WithSDKOptions from the Jaeger exporter (kata-containers#1825)
    66389ad6 Update function docs in sdk.go (kata-containers#1826)
    70bc9eb3 Adds support for timeout on the otlp/gRPC exporter (kata-containers#1821)
    081cc61d Update Jaeger exporter convenience functions (kata-containers#1822)
    1b9f16d3 Remove the WithDisabled option from Jaeger exporter (kata-containers#1806)
    6867faa0 Bump actions/cache from v2.1.4 to v2.1.5 (kata-containers#1818)
    a2bf04dc Build context pipeline in Jaeger upload process (kata-containers#1809)
    2de86f23 Remove locking from Jaeger exporter shutdown/export (kata-containers#1807)
    4f9fec29 Add ExportSpans benchmark to Jaeger exporter (kata-containers#1805)
    d9566abe Fix OTLP testing flake: signal connection from mock collector (kata-containers#1816)
    a2cecb6e add support for env var configuration to otlp/gRPC (kata-containers#1811)
    d616df61 Fix flaky OTLP exporter reconnect test (kata-containers#1814)
    b09df84a Changes stdout to expose the `*sdktrace.TracerProvider` (kata-containers#1800)
    04890608 Remove options field from Jaeger exporter (kata-containers#1808)
    6db20e00 Remove the abandoned Process struct in Jaeger exporter (kata-containers#1804)
    086abf34 docs: use test example to document prometheus.InstallNewPipeline (kata-containers#1796)
    d0cea04b Bump google.golang.org/api from 0.43.0 to 0.44.0 in /exporters/trace/jaeger (kata-containers#1792)
    99c477fe Fixed typo for default service name in Jaeger Exporter (kata-containers#1797)
    95fd8f50 Bump google.golang.org/grpc from 1.36.1 to 1.37.0 in /exporters/otlp (kata-containers#1791)
    9b251644 Zipkin Exporter: Use default resouce's serviceName as default serivce name (kata-containers#1777) (kata-containers#1786)
    4d141e47 Add k8s.node.name and k8s.node.uid to semconv (kata-containers#1789)
    5c99a34c Fix golint issue caused by incorrect comment (kata-containers#1795)
    c5d006c0 Update Jaeger environment variables (kata-containers#1752)
    58432808 add NewExportPipeline and InstallNewPipeline for otlp (kata-containers#1373)
    7d8e6bd7 Zipkin Exporter: Adjust span transformation to comply with the spec (kata-containers#1688)
    2817c091 Merge sdk/export/trace into sdk/trace (kata-containers#1778)
    c61e654c Refactor prometheus exporter tests to match file headers as well (kata-containers#1470)
    23422c56 Remove process config for Jaeger exporter (kata-containers#1776)
    0d49b592 Add test to check bsp ignores `OnEnd` and `ForceFlush` post Shutdown` (kata-containers#1772)
    e9aaa04b Record links/events attribute drops independently (kata-containers#1771)
    5bbfc22c Make ExportSpans for Jaeger Exporter honor deadline (kata-containers#1773)
    0786fe32 Add Bug report issue templates (kata-containers#1775)
    3c7facee Add `ExportTimeout` option to batch span processor (kata-containers#1755)
    c6b92d5b Make TraceFlags spec-compliant (kata-containers#1770)
    ee687ca5 Bump github.com/itchyny/gojq from 0.12.2 to 0.12.3 in /internal/tools (kata-containers#1774)
    52a24774 add support for configuring tls certs via env var to otlp/HTTP (kata-containers#1769)
    35cfbc7e Update precedence of event name in Jaeger exporter (kata-containers#1768)
    33699d24 Adds semantic conventions for exceptions (kata-containers#1492)
    928e3c38 Modify ForceFlush to abort after timeout/cancellation (kata-containers#1757)
    3947cab4 Fix testCollectorEndpoint typo and add tag assertions in jaeger_test (kata-containers#1753)
    ecc635dc add website docs (kata-containers#1747)
    07a8d195 Fix Jaeger span status reporting and unify tag keys (kata-containers#1761)
    4fa35c90 add partial support for env var config to otlp/HTTP (kata-containers#1758)
    bf180d0f improve OTLP/gRPC connection errors (kata-containers#1737)
    d575865b Fix span IsRecording when not sampling (kata-containers#1750)
    20c93b01 Update SamplingParameters (kata-containers#1749)
    97501a3f Update SpanSnapshot to use parent SpanContext (kata-containers#1748)
    604b05cb Store current Span instead of local and remote SpanContext in context.Context (kata-containers#1731)
    c61f4b6d Set @lizthegrey to emeritus status (kata-containers#1745)
    b1342fec Bump github.com/golangci/golangci-lint in /internal/tools (kata-containers#1743)
    54e1bd19 Bump google.golang.org/api from 0.41.0 to 0.43.0 in /exporters/trace/jaeger (kata-containers#1741)
    4d25b6a2 Bump github.com/prometheus/client_golang from 1.9.0 to 1.10.0 in /exporters/metric/prometheus (kata-containers#1740)
    0a47b66f Bump google.golang.org/grpc from 1.36.0 to 1.36.1 in /exporters/otlp (kata-containers#1739)
    26f006b8 Reinstate @paivagustavo as an Approver (kata-containers#1734)
    382c7ced Remove hasRemoteParent field from SDK span (kata-containers#1728)
    862a5a68 Remove setting error status while recording error with Span from oteltest package (kata-containers#1729)
    6defcfdf Remove links on NewRoot spans (kata-containers#1726)
    a9b2f851 upgrade thrift to v0.14.1 in jaeger exporter (kata-containers#1712)
    5a6a854d Bump google.golang.org/protobuf from 1.25.0 to 1.26.0 in /exporters/otlp (kata-containers#1724)
    23486213 Migrate to using go.opentelemetry.io/proto/otlp (kata-containers#1713)
    5d559b40 Remove makeSamplingDecision func (kata-containers#1711)
    e24702da Update the TraceContext.Extract docs (kata-containers#1720)
    9d4eb1f6 Update dates in CHANGELOG.md for 2021 releases (kata-containers#1723)
    2b4fa968 Release v0.19.0 (kata-containers#1710)
    4beb7041 sdk/trace: removing ApplyConfig and Config (kata-containers#1693)
    1d42be16 Rename WithDefaultSampler TracerProvider option to WithSampler and update docs (kata-containers#1702)
    860d5d86 Add flag to determine whether SpanContext is remote (kata-containers#1701)
    0fe65e6b Comply with OpenTelemetry attributes specification (kata-containers#1703)
    88884351 Bump google.golang.org/api from 0.40.0 to 0.41.0 in /exporters/trace/jaeger (kata-containers#1700)
    345f264a breaking(zipkin): removes servicName from zipkin exporter. (kata-containers#1697)
    62cbf0f2 Populate Jaeger's Span.Process from Resource (kata-containers#1673)
    28eaaa9a Add a test to prove the Tracer is safe for concurrent calls (kata-containers#1665)
    8b1be11a Rename resource pkg label vars and methods (kata-containers#1692)
    a1539d44 OpenCensus metric exporter bridge (kata-containers#1444)
    77aa218d Fix issue kata-containers#1490, apply same logic as in the SDK (kata-containers#1687)
    9d3416cc Fix synchronization issues in global trace delegate implementation (kata-containers#1686)
    58f69f09 Span status from HTTP code: Do not set status message if it can be inferred (kata-containers#1681)
    9c305bde Flush metric events prior to shutdown in OTLP example (kata-containers#1678)
    66b1135a Fix CHANGELOG (kata-containers#1680)
    90bd4ab5 Update employer information for maintainers (kata-containers#1683)
    36841913 Remove WithRecord() option from trace.SpanOption when starting a span (kata-containers#1660)
    65c7de20 Remove trace prefix from NoOp src files. (kata-containers#1679)
    e88a091a Make SpanContext Immutable (kata-containers#1573)
    d75e2680 Avoid overriding configuration of tracer provider (kata-containers#1633)
    2b4d5ac3 Bump github.com/golangci/golangci-lint in /internal/tools (kata-containers#1671)
    150b868d Bump github.com/google/go-cmp from 0.5.4 to 0.5.5 (kata-containers#1667)
    76aa924e Fix the examples target info messaging (kata-containers#1676)
    a3aa9fda Bump github.com/itchyny/gojq from 0.12.1 to 0.12.2 in /internal/tools (kata-containers#1672)
    a5edd79e Removed setting error status while recording err as span event (kata-containers#1663)
    e9814758 chore(zipkin): improves zipkin example to not to depend on timeouts. (kata-containers#1566)
    3dc91f2d Add ForceFlush method to TracerProvider (kata-containers#1608)
    bd0bba43 exporter: swap pusher for exporter (kata-containers#1656)
    56904859 Update the SimpleSpanProcessor (kata-containers#1612)
    a7f7abac  SpanStatus description set only when status code is set to Error (kata-containers#1662)
    05252f40 Jaeger Exporter: Fix minor mapping discrepancies (kata-containers#1626)
    238e7c61 Add non-empty string check for attribute keys (kata-containers#1659)
    e9b9aca8 Add tests for propagation of Sampler Tracestate changes (kata-containers#1655)
    875a2583 Add docs on when reviews should be cleared (kata-containers#1556)
    7153ef2d Add HTTP/JSON to the otlp exporter (kata-containers#1586)
    62e2a0f7 Unexport the simple and batch SpanProcessors (kata-containers#1638)
    992837f1 Add TracerProvider tests to oteltest harness (kata-containers#1607)
    bb4c297e Pre release v0.18.0 (kata-containers#1635)
    712c3dcc Fix makefile ci target and coverage test packages (kata-containers#1634)
    841d2a58 Rename local var new to not collide with builtin (kata-containers#1610)
    13938ab5 Update SpanProcessor docs (kata-containers#1611)
    e25503a0 Add compatibility tests to CI (kata-containers#1567)
    1519d959 Use reasonable interval in sdktrace.WithBatchTimeout (kata-containers#1621)
    7d4496e0 Pass metric labels when transforming to gaugeArray (kata-containers#1570)
    6d4a5e0d Bump google.golang.org/grpc from 1.35.0 to 1.36.0 in /exporters/otlp (kata-containers#1619)
    a93393a0 Bump google.golang.org/grpc in /example/prom-collector (kata-containers#1620)
    e499ca86 Fix validation for tracestate with vendor and add tests (kata-containers#1581)
    43886e52 Make timestamps sequential in lastvalue agg check (kata-containers#1579)
    37688ef6 revent end-users from implementing some interfaces (kata-containers#1575)
    85e696d2 Updating documentation with an working example for creating NewExporter (kata-containers#1513)
    562eb28b Unify the Added sections of the unreleased changes (kata-containers#1580)
    c4cf1aff Fix Windows build of Jaeger tests (kata-containers#1577)
    4a163bea Fix stdout TestStdoutTimestamp failure with sleep (kata-containers#1572)
    bd4701eb Stagger timestamps in exact aggregator tests (kata-containers#1569)
    b94cd4b2 add code attributes to semconv package (kata-containers#1558)
    78c06cef Update docs from gitter to slack for communication (kata-containers#1554)
    1307c911 Remove vendor exclude from license-check (kata-containers#1552)
    5d2636e5 Bump github.com/golangci/golangci-lint in /internal/tools (kata-containers#1565)
    d7aff473 Vendor Thrift dependency (kata-containers#1551)
    298c5a14 Update span limits to conform with OpenTelemetry specification (kata-containers#1535)
    ecf65d79 Rename otel/label -> otel/attribute (kata-containers#1541)
    1b5b6621 Remove resampling on span.SetName (kata-containers#1545)
    8da52996 fix: grpc reconnection  (kata-containers#1521)
    3bce9c97 Add Keys() method to propagation.TextMapCarrier (kata-containers#1544)
    0b1a1c72 Make oteltest.SpanRecorder into a concrete type (kata-containers#1542)
    7d0e3e52 SDK span no modification after ended (kata-containers#1543)
    7de3b58c Remove extra labels types (kata-containers#1314)
    73194e44 Bump google.golang.org/api from 0.39.0 to 0.40.0 in /exporters/trace/jaeger (kata-containers#1536)
    8fae0a64 Create resource.Default() with required attributes/default values (kata-containers#1507)
    76f93422 Release v0.17.0 (kata-containers#1534)
    9b242bc4 Organize API into Go modules based on stability and dependencies (kata-containers#1528)
    e50a1c8c Bump actions/cache from v2 to v2.1.4 (kata-containers#1518)
    a6aa7f00 Bump google.golang.org/api from 0.38.0 to 0.39.0 in /exporters/trace/jaeger (kata-containers#1517)
    38efc875 Code Improvement - Error strings should not be capitalized (kata-containers#1488)
    6b340501 Update default branch name (kata-containers#1505)
    b39fd052 nit: Fix comment to be up-to-date (kata-containers#1510)
    186c2953 Fix golint error of package comment form (kata-containers#1487)
    9308d662 Bump google.golang.org/api from 0.37.0 to 0.38.0 in /exporters/trace/jaeger (kata-containers#1506)
    1952d7b6 Reverse order of attribute precedence when merging two Resources (kata-containers#1501)
    ad7b4715 Remove build flags for runtime/trace support (kata-containers#1498)
    4bf4b690 Remove inaccurate and unnecessary import comment (kata-containers#1481)
    7e19eb6a Bump google.golang.org/api from 0.36.0 to 0.37.0 in /exporters/trace/jaeger (kata-containers#1504)
    c6a4406a Bump github.com/golangci/golangci-lint in /internal/tools (kata-containers#1503)
    9524ac09 Update workflows to include main branch as trigger (kata-containers#1497)
    c066f15e Bump github.com/gogo/protobuf from 1.3.1 to 1.3.2 in /internal/tools (kata-containers#1478)
    894e0240 Bump github.com/golangci/golangci-lint in /internal/tools (kata-containers#1477)
    71ffba39 Bump google.golang.org/grpc from 1.34.0 to 1.35.0 in /exporters/otlp (kata-containers#1471)
    515809a8 Bump github.com/itchyny/gojq from 0.12.0 to 0.12.1 in /internal/tools (kata-containers#1472)
    3e96ad1e gitignore: remove unused example path (kata-containers#1474)
    c5622777 Histogram aggregator functional options (kata-containers#1434)
    0df8cd62 Rename Makefile.proto to avoid interpretation as proto file (kata-containers#1468)
    979ff51f Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 (kata-containers#1453)
    1df8b3b8 Bump github.com/gogo/protobuf from 1.3.1 to 1.3.2 in /exporters/otlp (kata-containers#1456)
    4c30a90a Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /sdk (kata-containers#1455)
    5a9f8f6e Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/stdout (kata-containers#1454)
    7786f34c Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/trace/zipkin (kata-containers#1457)
    4352a7a6 Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/otlp (kata-containers#1460)
    6990b3b3 Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/metric/prometheus (kata-containers#1461)
    7af40d22 Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/trace/jaeger (kata-containers#1463)
    f16f1892 Bump google.golang.org/grpc in /example/otel-collector (kata-containers#1465)
    fe363be3 Move Span Event to API (kata-containers#1452)
    43922240 Bump google.golang.org/grpc in /example/prom-collector (kata-containers#1466)
    0aadfb27 Prepare release v0.16.0 (kata-containers#1464)
    207587b6 Metric histogram aggregator: Swap in SynchronizedMove to avoid allocations (kata-containers#1435)
    c29c6fd1 Shutdown underlying span exporter while shutting down BatchSpanProcessor (kata-containers#1443)
    dfece3d2 Combine the Push and Pull metric controllers (kata-containers#1378)
    74deeddd Handle tracestate in TraceContext propagator  (kata-containers#1447)
    49f699d6 Remove Quantile aggregation, DDSketch aggregator; add Exact timestamps (kata-containers#1412)
    9c949411 Rename internal/testing to internal/internaltest (kata-containers#1449)
    8d809814 Move gRPC driver to a subpackage and add an HTTP driver (kata-containers#1420)
    9332af1b Bump github.com/golangci/golangci-lint in /internal/tools (kata-containers#1445)
    5ed96e92 Update exporters/otlp Readme.md (kata-containers#1441)
    bc9cb5e3 Switch CircleCI badge to GitHub Actions (kata-containers#1440)
    716ad082 Remove CircleCI config (kata-containers#1439)
    0682db1e Adding Security Workflows to GitHub Actions (2/2): gosec workflow (kata-containers#1429)
    11f732b8 Adding Security Workflows to GitHub Actions (1/2): codeql workflow (kata-containers#1428)
    40f1c003 Add Tracestate into the SamplingResult struct (kata-containers#1432)
    db06c8d1 Flush metric events before shutdown in collector example (kata-containers#1438)
    f6f458e1 Fix golint issue caused by typo in trace.go (kata-containers#1436)
    fe9d1f7e Use uint64 Count consistently in metric aggregation (kata-containers#1430)
    3a337d0b Bump github.com/golangci/golangci-lint in /internal/tools (kata-containers#1433)
    1e4c8321 cleanup: drop the removed examples in gitignore (kata-containers#1427)
    5c9221cf Unify endpoint API that related to OTel exporter (kata-containers#1401)
    045c3ffe Build scripts: Replace mapfile with read loop for old bash versions (kata-containers#1425)
    2def8c3d Add Versioning Documentation (kata-containers#1388)
    6bcd1085 Bump github.com/itchyny/gojq from 0.11.2 to 0.12.0 in /internal/tools (kata-containers#1424)
    38e76efe Add a split protocol driver for otlp exporter (kata-containers#1418)
    439cd313 Add TraceState to SpanContext in API (kata-containers#1340)
    35215264 Split connection management away from exporter (kata-containers#1369)
    add9d933 Bump github.com/prometheus/client_golang from 1.8.0 to 1.9.0 in /exporters/metric/prometheus (kata-containers#1414)
    93d426a1 Add @dashpole as a project Approver (kata-containers#1410)
    6fe20ef3 Fix small typo (kata-containers#1409)
    b22d0d70 Mention the getting started guide (kata-containers#1406)
    3fb80fb2 Fix duplicate checkout action in GitHub workflow (kata-containers#1407)
    2051927b Correct CI workflow syntax (kata-containers#1403)
    f11a86f7 Fix typo in comment (kata-containers#1402)
    bdf87a78 Migrate CircleCI ci.yml workflow to GitHub Actions (kata-containers#1382)
    4e59dd1f Bump google.golang.org/grpc from 1.32.0 to 1.34.0 in /example/otel-collector (kata-containers#1400)
    83513f70 Bump google.golang.org/api from 0.32.0 to 0.36.0 in /exporters/trace/jaeger (kata-containers#1398)
    a354fc41 Bump github.com/prometheus/client_golang from 1.7.1 to 1.8.0 in /exporters/metric/prometheus (kata-containers#1397)
    3528e42c Bump google.golang.org/grpc from 1.32.0 to 1.34.0 in /exporters/otlp (kata-containers#1396)
    af114baf Call otel.Handle with non-nil errors (kata-containers#1384)
    c3c4273e Add RO/RW span interfaces (kata-containers#1360)

Fixes kata-containers#2591

Signed-off-by: Chelsea Mafrica <chelsea.e.mafrica@intel.com>
  • Loading branch information
cmaf committed Sep 8, 2021
1 parent 9bbaa66 commit c66ce7d
Show file tree
Hide file tree
Showing 218 changed files with 14,074 additions and 6,966 deletions.
17 changes: 11 additions & 6 deletions src/runtime/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -37,18 +37,23 @@ require (
github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8
github.com/sirupsen/logrus v1.8.1
github.com/smartystreets/goconvey v1.6.4 // indirect
github.com/stretchr/testify v1.6.1
github.com/stretchr/testify v1.7.0
github.com/urfave/cli v1.22.2
github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852
github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb
go.opentelemetry.io/otel v0.15.0
go.opentelemetry.io/otel/exporters/trace/jaeger v0.15.0
go.opentelemetry.io/otel/sdk v0.15.0
go.opencensus.io v0.23.0 // indirect
go.opentelemetry.io/otel v0.20.0
go.opentelemetry.io/otel/exporters/trace/jaeger v0.20.0
go.opentelemetry.io/otel/sdk v0.20.0
go.opentelemetry.io/otel/trace v0.20.0
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43
golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93
golang.org/x/sys v0.0.0-20210426230700-d19ff857e887
google.golang.org/grpc v1.33.2
golang.org/x/text v0.3.5 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb // indirect
google.golang.org/grpc v1.36.0
k8s.io/apimachinery v0.20.6
k8s.io/cri-api v0.20.6
)
Expand Down
51 changes: 28 additions & 23 deletions src/runtime/go.sum

Large diffs are not rendered by default.

57 changes: 26 additions & 31 deletions src/runtime/pkg/katautils/katatrace/tracing.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,13 @@ import (
"github.com/sirupsen/logrus"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/exporters/trace/jaeger"
"go.opentelemetry.io/otel/label"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/propagation"
export "go.opentelemetry.io/otel/sdk/export/trace"
sdktrace "go.opentelemetry.io/otel/sdk/trace"
"go.opentelemetry.io/otel/trace"
otelTrace "go.opentelemetry.io/otel/trace"
"go.opentelemetry.io/otel/sdk/resource"
"go.opentelemetry.io/otel/semconv"
)

// kataSpanExporter is used to ensure that Jaeger logs each span.
Expand All @@ -25,10 +26,10 @@ import (
// https: //github.com/kata-containers/tests/blob/master/tracing/tracing-test.sh
type kataSpanExporter struct{}

var _ export.SpanExporter = (*kataSpanExporter)(nil)
var _ sdktrace.SpanExporter = (*kataSpanExporter)(nil)

// ExportSpans exports SpanData to Jaeger.
func (e *kataSpanExporter) ExportSpans(ctx context.Context, spans []*export.SpanData) error {
func (e *kataSpanExporter) ExportSpans(ctx context.Context, spans []*sdktrace.SpanSnapshot) error {
for _, span := range spans {
kataTraceLogger.Tracef("Reporting span %+v", span)
}
Expand All @@ -39,9 +40,9 @@ func (e *kataSpanExporter) Shutdown(ctx context.Context) error {
return nil
}

// tracerCloser contains a copy of the closer returned by createTracer() which
// is used by stopTracing().
var tracerCloser func()
// tp is the trace provider created in CreateTracer() and used in StopTracing()
// to flush and shutdown all spans.
var tp *sdktrace.TracerProvider

var kataTraceLogger = logrus.NewEntry(logrus.New())

Expand All @@ -61,10 +62,10 @@ type JaegerConfig struct {
}

// CreateTracer create a tracer
func CreateTracer(name string, config *JaegerConfig) (func(), error) {
func CreateTracer(name string, config *JaegerConfig) (*sdktrace.TracerProvider, error) {
if !tracing {
otel.SetTracerProvider(trace.NewNoopTracerProvider())
return func() {}, nil
return nil, nil
}

// build kata exporter to log reporting span records
Expand All @@ -77,36 +78,31 @@ func CreateTracer(name string, config *JaegerConfig) (func(), error) {
}

jaegerExporter, err := jaeger.NewRawExporter(
jaeger.WithCollectorEndpoint(collectorEndpoint,
jaeger.WithCollectorEndpoint(jaeger.WithEndpoint(collectorEndpoint),
jaeger.WithUsername(config.JaegerUser),
jaeger.WithPassword(config.JaegerPassword),
), jaeger.WithProcess(jaeger.Process{
ServiceName: name,
Tags: []label.KeyValue{
label.String("exporter", "jaeger"),
label.String("lib", "opentelemetry"),
},
}))
),
)

if err != nil {
return nil, err
}

// build tracer provider, that combining both jaeger exporter and kata exporter.
tp := sdktrace.NewTracerProvider(
sdktrace.WithConfig(
sdktrace.Config{
DefaultSampler: sdktrace.AlwaysSample(),
},
),
sdktrace.WithSampler(sdktrace.AlwaysSample()),
sdktrace.WithSyncer(kataExporter),
sdktrace.WithSyncer(jaegerExporter),
sdktrace.WithResource(resource.NewWithAttributes(
semconv.ServiceNameKey.String(name),
attribute.String("exporter", "jaeger"),
attribute.String("lib", "opentelemetry"),
)),
)

tracerCloser = jaegerExporter.Flush

otel.SetTracerProvider(tp)
otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{}))
return tracerCloser, nil
return tp, nil
}

// StopTracing ends all tracing, reporting the spans to the collector.
Expand All @@ -121,9 +117,8 @@ func StopTracing(ctx context.Context) {
}

// report all possible spans to the collector
if tracerCloser != nil {
tracerCloser()
}
tp.ForceFlush(ctx)
tp.Shutdown(ctx)
}

// Trace creates a new tracing span based on the specified name and parent context.
Expand All @@ -138,12 +133,12 @@ func Trace(parent context.Context, logger *logrus.Entry, name string, tags ...ma
parent = context.Background()
}

var otelTags []label.KeyValue
var otelTags []attribute.KeyValue
// do not append tags if tracing is disabled
if tracing {
for _, tagSet := range tags {
for k, v := range tagSet {
otelTags = append(otelTags, label.Key(k).String(v))
otelTags = append(otelTags, attribute.Key(k).String(v))
}
}
}
Expand All @@ -166,5 +161,5 @@ func Trace(parent context.Context, logger *logrus.Entry, name string, tags ...ma
// AddTag adds an additional key-value pair to a tracing span. This can be used to
// provide dynamic tags that are determined at runtime.
func AddTag(span otelTrace.Span, key string, value interface{}) {
span.SetAttributes(label.Any(key, value))
span.SetAttributes(attribute.Any(key, value))
}
Loading

0 comments on commit c66ce7d

Please sign in to comment.