Skip to content

Commit

Permalink
chore(agent): Moving DS and Trigger to agent (#3742)
Browse files Browse the repository at this point in the history
* chore(agent): Moving DS and Trigger to agent

* fix(server): fixing mapping

* fix(server): introducing proper trigger encoder

* fix conflict
  • Loading branch information
xoscar committed Mar 20, 2024
1 parent 649bd6e commit 3217f21
Show file tree
Hide file tree
Showing 82 changed files with 460 additions and 2,520 deletions.
2 changes: 1 addition & 1 deletion server/tracedb/awsxray.go → agent/tracedb/awsxray.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ import (
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/xray"
"github.com/kubeshop/tracetest/agent/tracedb/connection"
"github.com/kubeshop/tracetest/server/datastore"
"github.com/kubeshop/tracetest/server/model"
"github.com/kubeshop/tracetest/server/tracedb/connection"
"github.com/kubeshop/tracetest/server/traces"
conventions "go.opentelemetry.io/collector/semconv/v1.6.1"
"go.opentelemetry.io/otel/trace"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/monitor/azquery"
"github.com/kubeshop/tracetest/agent/tracedb/connection"
"github.com/kubeshop/tracetest/server/datastore"
"github.com/kubeshop/tracetest/server/model"
"github.com/kubeshop/tracetest/server/tracedb/connection"
"github.com/kubeshop/tracetest/server/traces"
"go.opentelemetry.io/otel/trace"
)
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import (
"context"
"testing"

"github.com/kubeshop/tracetest/agent/tracedb/connection"
"github.com/kubeshop/tracetest/server/model"
"github.com/kubeshop/tracetest/server/tracedb/connection"
"github.com/stretchr/testify/assert"
)

Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import (
"context"
"fmt"

"github.com/kubeshop/tracetest/agent/tracedb/connection"
"github.com/kubeshop/tracetest/server/datastore"
"github.com/kubeshop/tracetest/server/model"
"github.com/kubeshop/tracetest/server/tracedb/connection"
"github.com/kubeshop/tracetest/server/traces"
"github.com/pkg/errors"
"go.opentelemetry.io/collector/component"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ import (
"strings"

"github.com/goware/urlx"
"github.com/kubeshop/tracetest/agent/tracedb/connection"
"github.com/kubeshop/tracetest/server/datastore"
"github.com/kubeshop/tracetest/server/model"
"github.com/kubeshop/tracetest/server/tracedb/connection"
"github.com/kubeshop/tracetest/server/traces"
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ import (

"github.com/elastic/go-elasticsearch/v8"
"github.com/elastic/go-elasticsearch/v8/esapi"
"github.com/kubeshop/tracetest/agent/tracedb/connection"
"github.com/kubeshop/tracetest/server/datastore"
"github.com/kubeshop/tracetest/server/model"
"github.com/kubeshop/tracetest/server/tracedb/connection"
"github.com/kubeshop/tracetest/server/traces"
"go.opentelemetry.io/otel/trace"
)
Expand Down
6 changes: 3 additions & 3 deletions server/tracedb/jaegerdb.go → agent/tracedb/jaegerdb.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ import (
"io"
"strings"

pb "github.com/kubeshop/tracetest/agent/internal/proto-gen-go/api_v3"
"github.com/kubeshop/tracetest/agent/tracedb/connection"
"github.com/kubeshop/tracetest/agent/tracedb/datasource"
"github.com/kubeshop/tracetest/server/datastore"
pb "github.com/kubeshop/tracetest/server/internal/proto-gen-go/api_v3"
"github.com/kubeshop/tracetest/server/model"
"github.com/kubeshop/tracetest/server/pkg/id"
"github.com/kubeshop/tracetest/server/tracedb/connection"
"github.com/kubeshop/tracetest/server/tracedb/datasource"
"github.com/kubeshop/tracetest/server/traces"
v1 "go.opentelemetry.io/proto/otlp/trace/v1"
"google.golang.org/grpc"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ import (
"strings"
"time"

"github.com/kubeshop/tracetest/agent/tracedb/connection"
"github.com/kubeshop/tracetest/server/datastore"
"github.com/kubeshop/tracetest/server/model"
"github.com/kubeshop/tracetest/server/tracedb/connection"
"github.com/kubeshop/tracetest/server/traces"
"github.com/opensearch-project/opensearch-go"
"github.com/opensearch-project/opensearch-go/opensearchapi"
Expand Down
2 changes: 1 addition & 1 deletion server/tracedb/otlp.go → agent/tracedb/otlp.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"database/sql"
"errors"

"github.com/kubeshop/tracetest/server/tracedb/connection"
"github.com/kubeshop/tracetest/agent/tracedb/connection"
"github.com/kubeshop/tracetest/server/traces"
"go.opentelemetry.io/otel/trace"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ import (
"strings"
"time"

"github.com/kubeshop/tracetest/agent/tracedb/connection"
"github.com/kubeshop/tracetest/server/datastore"
"github.com/kubeshop/tracetest/server/model"
"github.com/kubeshop/tracetest/server/tracedb/connection"
"github.com/kubeshop/tracetest/server/traces"
"go.opentelemetry.io/otel/trace"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ import (
"strings"
"time"

"github.com/kubeshop/tracetest/agent/tracedb/connection"
"github.com/kubeshop/tracetest/server/datastore"
"github.com/kubeshop/tracetest/server/model"
"github.com/kubeshop/tracetest/server/pkg/id"
"github.com/kubeshop/tracetest/server/tracedb/connection"
"github.com/kubeshop/tracetest/server/traces"
"go.opentelemetry.io/otel/trace"
)
Expand Down
6 changes: 3 additions & 3 deletions server/tracedb/tempodb.go → agent/tracedb/tempodb.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ import (
"strings"

"github.com/golang/protobuf/proto"
tempopb "github.com/kubeshop/tracetest/agent/internal/proto-gen-go/tempo-idl"
"github.com/kubeshop/tracetest/agent/tracedb/connection"
"github.com/kubeshop/tracetest/agent/tracedb/datasource"
"github.com/kubeshop/tracetest/server/datastore"
tempopb "github.com/kubeshop/tracetest/server/internal/proto-gen-go/tempo-idl"
"github.com/kubeshop/tracetest/server/model"
"github.com/kubeshop/tracetest/server/pkg/id"
"github.com/kubeshop/tracetest/server/tracedb/connection"
"github.com/kubeshop/tracetest/server/tracedb/datasource"
"github.com/kubeshop/tracetest/server/traces"
"github.com/pkg/errors"
"go.opentelemetry.io/otel/trace"
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import (
"fmt"
"testing"

"github.com/kubeshop/tracetest/agent/tracedb"
"github.com/kubeshop/tracetest/server/datastore"
"github.com/kubeshop/tracetest/server/tracedb"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
Expand Down
4 changes: 2 additions & 2 deletions agent/workers/poller.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ import (
"github.com/kubeshop/tracetest/agent/event"
"github.com/kubeshop/tracetest/agent/proto"
"github.com/kubeshop/tracetest/agent/telemetry"
"github.com/kubeshop/tracetest/agent/tracedb"
"github.com/kubeshop/tracetest/agent/tracedb/connection"
"github.com/kubeshop/tracetest/server/datastore"
"github.com/kubeshop/tracetest/server/executor"
"github.com/kubeshop/tracetest/server/tracedb"
"github.com/kubeshop/tracetest/server/tracedb/connection"
"github.com/kubeshop/tracetest/server/traces"
"go.opentelemetry.io/otel/metric"
"go.opentelemetry.io/otel/trace"
Expand Down
4 changes: 2 additions & 2 deletions agent/workers/poller/inmemory_datastore.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import (
"context"

"github.com/kubeshop/tracetest/agent/collector"
"github.com/kubeshop/tracetest/agent/tracedb"
"github.com/kubeshop/tracetest/agent/tracedb/connection"
"github.com/kubeshop/tracetest/server/pkg/id"
"github.com/kubeshop/tracetest/server/tracedb"
"github.com/kubeshop/tracetest/server/tracedb/connection"
"github.com/kubeshop/tracetest/server/traces"
"go.opentelemetry.io/otel/trace"
)
Expand Down
2 changes: 1 addition & 1 deletion agent/workers/testconnnection.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import (
"github.com/kubeshop/tracetest/agent/client"
"github.com/kubeshop/tracetest/agent/event"
"github.com/kubeshop/tracetest/agent/proto"
"github.com/kubeshop/tracetest/agent/tracedb"
"github.com/kubeshop/tracetest/server/model"
"github.com/kubeshop/tracetest/server/tracedb"
"go.opentelemetry.io/otel/metric"
"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"
Expand Down
4 changes: 2 additions & 2 deletions agent/workers/trigger.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ import (
"github.com/kubeshop/tracetest/agent/event"
"github.com/kubeshop/tracetest/agent/proto"
"github.com/kubeshop/tracetest/agent/ui/dashboard/sensors"
"github.com/kubeshop/tracetest/agent/workers/trigger"
agentTrigger "github.com/kubeshop/tracetest/agent/workers/trigger"
"github.com/kubeshop/tracetest/server/executor"
"github.com/kubeshop/tracetest/server/pkg/id"
"github.com/kubeshop/tracetest/server/test/trigger"
"go.opentelemetry.io/otel/metric"
"go.opentelemetry.io/otel/trace"
v1 "go.opentelemetry.io/proto/otlp/trace/v1"
Expand Down Expand Up @@ -208,7 +208,7 @@ func (w *TriggerWorker) trigger(ctx context.Context, triggerRequest *proto.Trigg

func convertProtoToTrigger(pt *proto.Trigger) trigger.Trigger {
return trigger.Trigger{
Type: trigger.TriggerType(pt.Type),
Type: agentTrigger.TriggerType(pt.Type),
HTTP: convertProtoHttpTriggerToHttpTrigger(pt.Http),
GRPC: convertProtoGrpcTriggerToGrpcTrigger(pt.Grpc),
TraceID: convertProtoTraceIDTriggerToTraceIDTrigger(pt.TraceID),
Expand Down
81 changes: 71 additions & 10 deletions agent/workers/trigger/grpc.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import (
"github.com/golang/protobuf/jsonpb"
"github.com/golang/protobuf/proto"
"github.com/jhump/protoreflect/desc"
"github.com/kubeshop/tracetest/server/test/trigger"
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
Expand All @@ -21,20 +20,82 @@ import (
"google.golang.org/grpc/status"
)

const TriggerTypeGRPC TriggerType = "grpc"

type GRPCHeader struct {
Key string `expr_enabled:"true" json:"key"`
Value string `expr_enabled:"true" json:"value"`
}

type GRPCRequest struct {
ProtobufFile string `json:"protobufFile,omitempty" expr_enabled:"true"`
Address string `json:"address,omitempty" expr_enabled:"true"`
Service string `json:"service,omitempty" expr_enabled:"true"`
Method string `json:"method,omitempty" expr_enabled:"true"`
Request string `json:"request,omitempty" expr_enabled:"true"`
Metadata []GRPCHeader `json:"metadata,omitempty"`
Auth *HTTPAuthenticator `json:"auth,omitempty"`
}

func (a GRPCRequest) Headers() []string {
h := []string{}

for _, md := range a.Metadata {
// ignore invalid values
if md.Key == "" {
continue
}

h = append(h, md.Key+": "+md.Value)
}

return h
}

func (a GRPCRequest) MD() *metadata.MD {
md := metadata.MD{}

for _, header := range a.Metadata {
// ignore invalid values
if header.Key == "" {
continue
}

md[header.Key] = []string{header.Value}
}

return &md
}

func (a GRPCRequest) Authenticate() {
if a.Auth == nil {
return
}

a.Auth.AuthenticateGRPC()
}

type GRPCResponse struct {
Status string
StatusCode int
Metadata []GRPCHeader
Body string
}

func GRPC() Triggerer {
return &grpcTriggerer{}
}

type grpcTriggerer struct{}

func (te *grpcTriggerer) Trigger(ctx context.Context, triggerConfig trigger.Trigger, opts *Options) (Response, error) {
func (te *grpcTriggerer) Trigger(ctx context.Context, triggerConfig Trigger, opts *Options) (Response, error) {
response := Response{
Result: trigger.TriggerResult{
Result: TriggerResult{
Type: te.Type(),
},
}

if triggerConfig.Type != trigger.TriggerTypeGRPC {
if triggerConfig.Type != TriggerTypeGRPC {
return response, fmt.Errorf(`trigger type "%s" not supported by GRPC triggerer`, triggerConfig.Type)
}

Expand Down Expand Up @@ -84,7 +145,7 @@ func (te *grpcTriggerer) Trigger(ctx context.Context, triggerConfig trigger.Trig
return response, err
}

response.Result.GRPC = &trigger.GRPCResponse{
response.Result.GRPC = &GRPCResponse{
Metadata: mapHeaders(h.respMD),
StatusCode: int(h.respCode),
Status: h.respCode.String(),
Expand All @@ -99,8 +160,8 @@ func (te *grpcTriggerer) Trigger(ctx context.Context, triggerConfig trigger.Trig
return response, nil
}

func (t *grpcTriggerer) Type() trigger.TriggerType {
return trigger.TriggerTypeGRPC
func (t *grpcTriggerer) Type() TriggerType {
return TriggerTypeGRPC
}

func mdToHeaders(md *metadata.MD) []string {
Expand Down Expand Up @@ -137,11 +198,11 @@ func protoDescription(content string) (grpcurl.DescriptorSource, error) {

}

func mapHeaders(md metadata.MD) []trigger.GRPCHeader {
var mappedHeaders []trigger.GRPCHeader
func mapHeaders(md metadata.MD) []GRPCHeader {
var mappedHeaders []GRPCHeader
for key, headers := range md {
for _, val := range headers {
val := trigger.GRPCHeader{
val := GRPCHeader{
Key: key,
Value: val,
}
Expand Down
Loading

0 comments on commit 3217f21

Please sign in to comment.