Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/lightstep/lightstep-tracer-go/collector_client_thrift.go')
-rw-r--r--vendor/github.com/lightstep/lightstep-tracer-go/collector_client_thrift.go201
1 files changed, 0 insertions, 201 deletions
diff --git a/vendor/github.com/lightstep/lightstep-tracer-go/collector_client_thrift.go b/vendor/github.com/lightstep/lightstep-tracer-go/collector_client_thrift.go
deleted file mode 100644
index 896c778f3..000000000
--- a/vendor/github.com/lightstep/lightstep-tracer-go/collector_client_thrift.go
+++ /dev/null
@@ -1,201 +0,0 @@
-package lightstep
-
-import (
- "context"
- "fmt"
- "strconv"
- "strings"
- "time"
-
- "github.com/lightstep/lightstep-tracer-go/lightstep_thrift"
- "github.com/lightstep/thrift/lib/go/thrift"
-)
-
-// thriftCollectorClient specifies how to send reports back to a LightStep
-// collector via thrift
-type thriftCollectorClient struct {
- // auth and runtime information
- auth *lightstep_thrift.Auth
- attributes map[string]string
- startTime time.Time
- reporterID uint64
-
- maxReportingPeriod time.Duration
- // Remote service that will receive reports
- thriftClient lightstep_thrift.ReportingService
-
- // apiURL is the base URL of the LightStep web API, used for
- // explicit trace collection requests.
- collectorURL string
-
- // AccessToken is the access token used for explicit trace
- // collection requests.
- AccessToken string
-
- verbose bool
-
- // flags replacement
- maxLogMessageLen int
- maxLogKeyLen int
-
- reportTimeout time.Duration
-
- thriftConnectorFactory ConnectorFactory
-}
-
-func newThriftCollectorClient(opts Options, guid uint64, attributes map[string]string) *thriftCollectorClient {
- reportTimeout := 60 * time.Second
- if opts.ReportTimeout > 0 {
- reportTimeout = opts.ReportTimeout
- }
-
- now := time.Now()
- rec := &thriftCollectorClient{
- auth: &lightstep_thrift.Auth{
- AccessToken: thrift.StringPtr(opts.AccessToken),
- },
- attributes: attributes,
- startTime: now,
- maxReportingPeriod: opts.ReportingPeriod,
- verbose: opts.Verbose,
- collectorURL: opts.Collector.URL(),
- AccessToken: opts.AccessToken,
- maxLogMessageLen: opts.MaxLogValueLen,
- maxLogKeyLen: opts.MaxLogKeyLen,
- reportTimeout: reportTimeout,
- thriftConnectorFactory: opts.ConnFactory,
- reporterID: guid,
- }
- return rec
-}
-
-func (client *thriftCollectorClient) ConnectClient() (Connection, error) {
- var conn Connection
-
- if client.thriftConnectorFactory != nil {
- uncheckedClient, transport, err := client.thriftConnectorFactory()
- if err != nil {
- return nil, err
- }
-
- thriftClient, ok := uncheckedClient.(lightstep_thrift.ReportingService)
- if !ok {
- return nil, fmt.Errorf("thrift connector factory did not provide valid client")
- }
-
- conn = transport
- client.thriftClient = thriftClient
- } else {
- transport, err := thrift.NewTHttpPostClient(client.collectorURL, client.reportTimeout)
- if err != nil {
- return nil, err
- }
-
- conn = transport
- client.thriftClient = lightstep_thrift.NewReportingServiceClientFactory(
- transport,
- thrift.NewTBinaryProtocolFactoryDefault(),
- )
- }
- return conn, nil
-}
-
-func (*thriftCollectorClient) ShouldReconnect() bool {
- return false
-}
-
-func (client *thriftCollectorClient) Report(_ context.Context, req reportRequest) (collectorResponse, error) {
- if req.thriftRequest == nil {
- return nil, fmt.Errorf("thriftRequest cannot be null")
- }
- resp, err := client.thriftClient.Report(client.auth, req.thriftRequest)
- if err != nil {
- return nil, err
- }
-
- return resp, err
-}
-
-func (client *thriftCollectorClient) Translate(_ context.Context, buffer *reportBuffer) (reportRequest, error) {
- rawSpans := buffer.rawSpans
- // Convert them to thrift.
- recs := make([]*lightstep_thrift.SpanRecord, len(rawSpans))
- // TODO: could pool lightstep_thrift.SpanRecords
- for i, raw := range rawSpans {
- var joinIds []*lightstep_thrift.TraceJoinId
- var attributes []*lightstep_thrift.KeyValue
- for key, value := range raw.Tags {
- // Note: the gRPC tracer uses Sprintf("%#v") for non-scalar non-string
- // values, differs from the treatment here:
- if strings.HasPrefix(key, "join:") {
- joinIds = append(joinIds, &lightstep_thrift.TraceJoinId{TraceKey: key, Value: fmt.Sprint(value)})
- } else {
- attributes = append(attributes, &lightstep_thrift.KeyValue{Key: key, Value: fmt.Sprint(value)})
- }
- }
- logs := make([]*lightstep_thrift.LogRecord, len(raw.Logs))
- for j, log := range raw.Logs {
- thriftLogRecord := &lightstep_thrift.LogRecord{
- TimestampMicros: thrift.Int64Ptr(log.Timestamp.UnixNano() / 1000),
- }
- // In the deprecated thrift case, we can reuse a single "field"
- // encoder across all of the N log fields.
- lfe := thriftLogFieldEncoder{thriftLogRecord, client}
- for _, f := range log.Fields {
- f.Marshal(&lfe)
- }
- logs[j] = thriftLogRecord
- }
-
- // TODO implement baggage
- if raw.ParentSpanID != 0 {
- attributes = append(attributes, &lightstep_thrift.KeyValue{Key: ParentSpanGUIDKey,
- Value: strconv.FormatUint(raw.ParentSpanID, 16)})
- }
-
- recs[i] = &lightstep_thrift.SpanRecord{
- SpanGuid: thrift.StringPtr(strconv.FormatUint(raw.Context.SpanID, 16)),
- TraceGuid: thrift.StringPtr(strconv.FormatUint(raw.Context.TraceID, 16)),
- SpanName: thrift.StringPtr(raw.Operation),
- JoinIds: joinIds,
- OldestMicros: thrift.Int64Ptr(raw.Start.UnixNano() / 1000),
- YoungestMicros: thrift.Int64Ptr(raw.Start.Add(raw.Duration).UnixNano() / 1000),
- Attributes: attributes,
- LogRecords: logs,
- }
- }
-
- metrics := lightstep_thrift.Metrics{
- Counts: []*lightstep_thrift.MetricsSample{
- &lightstep_thrift.MetricsSample{
- Name: "spans.dropped",
- Int64Value: &buffer.droppedSpanCount,
- },
- },
- }
-
- req := &lightstep_thrift.ReportRequest{
- OldestMicros: thrift.Int64Ptr(buffer.reportEnd.UnixNano() / 1000),
- YoungestMicros: thrift.Int64Ptr(buffer.reportStart.UnixNano() / 1000),
- Runtime: client.thriftRuntime(),
- SpanRecords: recs,
- InternalMetrics: &metrics,
- }
- return reportRequest{
- thriftRequest: req,
- }, nil
-}
-
-// caller must hold r.lock
-func (client *thriftCollectorClient) thriftRuntime() *lightstep_thrift.Runtime {
- guid := strconv.FormatUint(client.reporterID, 10)
- runtimeAttrs := []*lightstep_thrift.KeyValue{}
- for k, v := range client.attributes {
- runtimeAttrs = append(runtimeAttrs, &lightstep_thrift.KeyValue{Key: k, Value: v})
- }
- return &lightstep_thrift.Runtime{
- StartMicros: thrift.Int64Ptr(client.startTime.UnixNano() / 1000),
- Attrs: runtimeAttrs,
- Guid: &guid,
- }
-}