diff --git a/cmd/vroom/chunk_test.go b/cmd/vroom/chunk_test.go index 524e0efe..b15db0c4 100644 --- a/cmd/vroom/chunk_test.go +++ b/cmd/vroom/chunk_test.go @@ -6,8 +6,6 @@ import ( "os" "testing" - "github.com/segmentio/kafka-go" - "gocloud.dev/blob" _ "gocloud.dev/blob/fileblob" ) @@ -38,13 +36,3 @@ func TestMain(m *testing.M) { os.Exit(code) } - -type KafkaWriterMock struct{} - -func (k KafkaWriterMock) WriteMessages(_ context.Context, _ ...kafka.Message) error { - return nil -} - -func (k KafkaWriterMock) Close() error { - return nil -} diff --git a/cmd/vroom/config.go b/cmd/vroom/config.go index 04a84c31..f25b13ed 100644 --- a/cmd/vroom/config.go +++ b/cmd/vroom/config.go @@ -8,17 +8,6 @@ type ( SentryDSN string `env:"SENTRY_DSN"` - KafkaSaslMechanism string `env:"SENTRY_KAFKA_SASL_MECHANISM"` - KafkaSaslUsername string `env:"SENTRY_KAFKA_SASL_USERNAME"` - KafkaSaslPassword string `env:"SENTRY_KAFKA_SASL_PASSWORD"` - KafkaSslCaPath string `env:"SENTRY_KAFKA_SSL_CA_PATH"` - KafkaSslCertPath string `env:"SENTRY_KAFKA_SSL_CERT_PATH"` - KafkaSslKeyPath string `env:"SENTRY_KAFKA_SSL_KEY_PATH"` - - OccurrencesKafkaBrokers []string `env:"SENTRY_KAFKA_BROKERS_OCCURRENCES" env-default:"localhost:9092"` - - OccurrencesKafkaTopic string `env:"SENTRY_KAFKA_TOPIC_OCCURRENCES" env-default:"ingest-occurrences"` - BucketURL string `env:"SENTRY_BUCKET_PROFILES" env-default:"file://./test/gcs/sentry-profiles"` } ) diff --git a/cmd/vroom/kafka.go b/cmd/vroom/kafka.go deleted file mode 100644 index e2159395..00000000 --- a/cmd/vroom/kafka.go +++ /dev/null @@ -1,12 +0,0 @@ -package main - -import ( - "context" - - "github.com/segmentio/kafka-go" -) - -type KafkaWriter interface { - WriteMessages(ctx context.Context, msgs ...kafka.Message) error - Close() error -} diff --git a/cmd/vroom/main.go b/cmd/vroom/main.go index b58e6184..130c6ca7 100644 --- a/cmd/vroom/main.go +++ b/cmd/vroom/main.go @@ -16,7 +16,6 @@ import ( sentryhttp "github.com/getsentry/sentry-go/http" "github.com/ilyakaznacheev/cleanenv" "github.com/julienschmidt/httprouter" - "github.com/segmentio/kafka-go" "gocloud.dev/blob" _ "gocloud.dev/blob/azureblob" _ "gocloud.dev/blob/fileblob" @@ -32,8 +31,6 @@ import ( type environment struct { config ServiceConfig - occurrencesWriter KafkaWriter - storage *blob.Bucket } @@ -54,16 +51,6 @@ func newEnvironment(ctx context.Context) (*environment, error) { return nil, err } - e.occurrencesWriter = &kafka.Writer{ - Addr: kafka.TCP(e.config.OccurrencesKafkaBrokers...), - Async: true, - Balancer: kafka.CRC32Balancer{}, - BatchSize: 100, - ReadTimeout: 3 * time.Second, - Topic: e.config.OccurrencesKafkaTopic, - WriteTimeout: 3 * time.Second, - Transport: createKafkaRoundTripper(e.config), - } return &e, nil } @@ -72,10 +59,6 @@ func (e *environment) shutdown(ctx context.Context) { if err != nil { sentry.CaptureException(ctx, err) } - err = e.occurrencesWriter.Close() - if err != nil { - sentry.CaptureException(ctx, err) - } sentry.Flush(5 * time.Second) } diff --git a/cmd/vroom/regressed.go b/cmd/vroom/regressed.go index 17d60b52..218abb32 100644 --- a/cmd/vroom/regressed.go +++ b/cmd/vroom/regressed.go @@ -11,7 +11,6 @@ import ( func (env *environment) postRegressed(w http.ResponseWriter, r *http.Request) { ctx := r.Context() - produceToKafka := r.URL.Query().Get("produce") != "false" regressedFunctions, err := decodeRegressedFunctionPayload(ctx, r) if err != nil { @@ -41,11 +40,8 @@ func (env *environment) postRegressed(w http.ResponseWriter, r *http.Request) { data := struct { Occurrences int `json:"occurrences"` Emitted []occurrence.RegressedFunction `json:"emitted"` - OccurrencePayloads *[]*occurrence.Occurrence `json:"occurrence_payloads,omitempty"` - }{Occurrences: len(occurrences), Emitted: emitted} - if !produceToKafka { - data.OccurrencePayloads = &occurrences - } + OccurrencePayloads []*occurrence.Occurrence `json:"occurrence_payloads"` + }{Occurrences: len(occurrences), Emitted: emitted, OccurrencePayloads: occurrences} b, err := json.Marshal(data) s.Finish() if err != nil { @@ -54,25 +50,6 @@ func (env *environment) postRegressed(w http.ResponseWriter, r *http.Request) { return } - if produceToKafka { - occurrenceMessages, err := occurrence.GenerateKafkaMessageBatch(occurrences) - if err != nil { - sentry.CaptureException(ctx, err) - w.WriteHeader(http.StatusInternalServerError) - return - } - - s = sentry.StartSpan(ctx, "processing") - s.Description = "Send occurrences to Kafka" - err = env.occurrencesWriter.WriteMessages(ctx, occurrenceMessages...) - s.Finish() - if err != nil { - sentry.CaptureException(ctx, err) - w.WriteHeader(http.StatusInternalServerError) - return - } - } - w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusOK) _, _ = w.Write(b) diff --git a/cmd/vroom/regressed_test.go b/cmd/vroom/regressed_test.go index 7b444f2f..2043af22 100644 --- a/cmd/vroom/regressed_test.go +++ b/cmd/vroom/regressed_test.go @@ -1,9 +1,7 @@ package main import ( - "context" "encoding/json" - "errors" "net/http" "net/http/httptest" "strings" @@ -15,25 +13,8 @@ import ( "github.com/getsentry/vroom/internal/profile" "github.com/getsentry/vroom/internal/sample" "github.com/getsentry/vroom/internal/storageutil" - "github.com/segmentio/kafka-go" ) -type regressedKafkaWriter struct { - calls int - messages []kafka.Message - err error -} - -func (w *regressedKafkaWriter) WriteMessages(_ context.Context, messages ...kafka.Message) error { - w.calls++ - w.messages = append(w.messages, messages...) - return w.err -} - -func (w *regressedKafkaWriter) Close() error { - return nil -} - func TestPostRegressed(t *testing.T) { p := profile.New(&sample.Profile{ Platform: platform.Node, @@ -59,35 +40,24 @@ func TestPostRegressed(t *testing.T) { name string query string body string - writerErr error - wantCalls int wantCount int - wantInline bool wantStatus int }{ - {name: "default", body: payload, wantCalls: 1, wantCount: 1, wantStatus: http.StatusOK}, - {name: "empty", query: "?produce=", body: payload, wantCalls: 1, wantCount: 1, wantStatus: http.StatusOK}, - {name: "bare", query: "?produce", body: payload, wantCalls: 1, wantCount: 1, wantStatus: http.StatusOK}, - {name: "true", query: "?produce=true", body: payload, wantCalls: 1, wantCount: 1, wantStatus: http.StatusOK}, - {name: "zero", query: "?produce=0", body: payload, wantCalls: 1, wantCount: 1, wantStatus: http.StatusOK}, - {name: "uppercase", query: "?produce=False", body: payload, wantCalls: 1, wantCount: 1, wantStatus: http.StatusOK}, - {name: "false", query: "?produce=false", body: payload, wantInline: true, wantCount: 1, wantStatus: http.StatusOK}, - {name: "false empty batch", query: "?produce=false", body: "[]", wantInline: true, wantStatus: http.StatusOK}, - {name: "writer failure", body: payload, writerErr: errors.New("write failed"), wantCalls: 1, wantStatus: http.StatusInternalServerError}, - {name: "false ignores writer failure", query: "?produce=false", body: payload, writerErr: errors.New("write failed"), wantInline: true, wantCount: 1, wantStatus: http.StatusOK}, - {name: "invalid payload", query: "?produce=false", body: "invalid", wantStatus: http.StatusBadRequest}, + {name: "default", body: payload, wantCount: 1, wantStatus: http.StatusOK}, + {name: "legacy false ignored", query: "?produce=false", body: payload, wantCount: 1, wantStatus: http.StatusOK}, + {name: "legacy true ignored", query: "?produce=true", body: payload, wantCount: 1, wantStatus: http.StatusOK}, + {name: "empty batch", body: "[]", wantStatus: http.StatusOK}, + {name: "null batch", body: "null", wantStatus: http.StatusOK}, + {name: "missing frame", body: strings.Replace(payload, "1176630088", "0", 1), wantStatus: http.StatusOK}, + {name: "invalid payload", body: "invalid", wantStatus: http.StatusBadRequest}, } { t.Run(tt.name, func(t *testing.T) { - writer := ®ressedKafkaWriter{err: tt.writerErr} - env := environment{occurrencesWriter: writer} + env := environment{} rec := httptest.NewRecorder() env.postRegressed(rec, httptest.NewRequest(http.MethodPost, "/regressed"+tt.query, strings.NewReader(tt.body))) if rec.Code != tt.wantStatus { t.Fatalf("status = %d, want %d", rec.Code, tt.wantStatus) } - if writer.calls != tt.wantCalls { - t.Fatalf("Kafka calls = %d, want %d", writer.calls, tt.wantCalls) - } if tt.wantStatus != http.StatusOK { return } @@ -105,25 +75,13 @@ func TestPostRegressed(t *testing.T) { if response.Occurrences != tt.wantCount || len(response.Emitted) != tt.wantCount { t.Fatalf("occurrences = %d, emitted = %d, want %d", response.Occurrences, len(response.Emitted), tt.wantCount) } - if (response.OccurrencePayloads != nil) != tt.wantInline { - t.Fatalf("occurrence_payloads presence mismatch: %s", rec.Body.String()) - } - var occurrences []*occurrence.Occurrence - if tt.wantInline { - occurrences = response.OccurrencePayloads - } else { - for _, message := range writer.messages { - var o occurrence.Occurrence - if err := json.Unmarshal(message.Value, &o); err != nil { - t.Fatal(err) - } - occurrences = append(occurrences, &o) - } + if response.OccurrencePayloads == nil || response.Emitted == nil { + t.Fatalf("expected response arrays, got: %s", rec.Body.String()) } - if len(occurrences) != tt.wantCount { - t.Fatalf("payload count = %d, want %d", len(occurrences), tt.wantCount) + if len(response.OccurrencePayloads) != tt.wantCount { + t.Fatalf("payload count = %d, want %d", len(response.OccurrencePayloads), tt.wantCount) } - for _, o := range occurrences { + for _, o := range response.OccurrencePayloads { if o.ProjectID != 2 || o.Culprit != "work" || o.ID == "" || o.PayloadType != occurrence.OccurrencePayload { t.Fatalf("unexpected occurrence: %+v", o) } diff --git a/cmd/vroom/utils.go b/cmd/vroom/utils.go deleted file mode 100644 index 39ac12aa..00000000 --- a/cmd/vroom/utils.go +++ /dev/null @@ -1,84 +0,0 @@ -package main - -import ( - "crypto/tls" - "crypto/x509" - "log" - "net" - "os" - "strings" - "time" - - "github.com/segmentio/kafka-go" - "github.com/segmentio/kafka-go/sasl" - "github.com/segmentio/kafka-go/sasl/plain" - "github.com/segmentio/kafka-go/sasl/scram" -) - -func createKafkaRoundTripper(e ServiceConfig) kafka.RoundTripper { - var saslMechanism sasl.Mechanism - var tlsConfig *tls.Config - - switch strings.ToUpper(e.KafkaSaslMechanism) { - case "PLAIN": - saslMechanism = plain.Mechanism{ - Username: e.KafkaSaslUsername, - Password: e.KafkaSaslPassword, - } - case "SCRAM-SHA-256": - mechanism, err := scram.Mechanism(scram.SHA256, e.KafkaSaslUsername, e.KafkaSaslPassword) - if err != nil { - log.Fatal("unable to create scram-sha-256 mechanism", err) - return nil - } - - saslMechanism = mechanism - case "SCRAM-SHA-512": - mechanism, err := scram.Mechanism(scram.SHA512, e.KafkaSaslUsername, e.KafkaSaslPassword) - if err != nil { - log.Fatal("unable to create scram-sha-512 mechanism", err) - return nil - } - - saslMechanism = mechanism - } - - if e.KafkaSslCertPath != "" && e.KafkaSslKeyPath != "" { - certs, err := tls.LoadX509KeyPair(e.KafkaSslCertPath, e.KafkaSslKeyPath) - if err != nil { - log.Fatal("unable to load certificate key pair", err) - return nil - } - - caCertificatePool, err := x509.SystemCertPool() - if err != nil { - caCertificatePool = x509.NewCertPool() - } - if e.KafkaSslCaPath != "" { - caFile, err := os.ReadFile(e.KafkaSslCaPath) - if err != nil { - log.Fatal("unable to read ca file", err) - return nil - } - - if ok := caCertificatePool.AppendCertsFromPEM(caFile); !ok { - log.Fatal("unable to append ca certificate to pool") - return nil - } - } - - tlsConfig = &tls.Config{ - RootCAs: caCertificatePool, - Certificates: []tls.Certificate{certs}, - } - } - - return &kafka.Transport{ - SASL: saslMechanism, - TLS: tlsConfig, - Dial: (&net.Dialer{ - Timeout: 3 * time.Second, - DualStack: true, - }).DialContext, - } -} diff --git a/devservices/config.yml b/devservices/config.yml index 8c6b5893..95af6742 100644 --- a/devservices/config.yml +++ b/devservices/config.yml @@ -2,23 +2,16 @@ x-sentry-service-config: version: 0.1 service_name: vroom dependencies: - kafka: - description: Shared instance of kafka used by sentry services - remote: - repo_name: sentry-shared-kafka - branch: main - repo_link: https://github.com/getsentry/sentry-shared-kafka.git vroom: description: Sentry's profiling service, processing and deriving data about your profiles modes: - default: [kafka, vroom] + default: [vroom] services: vroom: image: ghcr.io/getsentry/vroom:nightly ports: - 127.0.0.1:8085:8085 environment: - SENTRY_KAFKA_BROKERS_OCCURRENCES: kafka-kafka-1:9092 SENTRY_BUCKET_PROFILES: file://localhost//var/lib/sentry-profiles SENTRY_SNUBA_HOST: http://127.0.0.1:1218 volumes: diff --git a/go.mod b/go.mod index 6f117619..ba63aab7 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,6 @@ require ( github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 github.com/pierrec/lz4 v2.6.1+incompatible github.com/pierrec/lz4/v4 v4.1.15 - github.com/segmentio/kafka-go v0.4.38 gocloud.dev v0.46.0 google.golang.org/api v0.272.0 ) @@ -88,8 +87,6 @@ require ( github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect github.com/sirupsen/logrus v1.9.1 // indirect github.com/spiffe/go-spiffe/v2 v2.7.0 // indirect - github.com/xdg/scram v1.0.5 // indirect - github.com/xdg/stringprep v1.0.3 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/contrib/detectors/gcp v1.44.0 // indirect diff --git a/go.sum b/go.sum index 57ba6920..ea800e19 100644 --- a/go.sum +++ b/go.sum @@ -208,7 +208,6 @@ github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8 github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU= github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= github.com/klauspost/compress v1.14.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.18.7 h1:aUyZsS4kH3QTKurYhAOwAHxllVPnOthb3vPfnF1Ehjw= github.com/klauspost/compress v1.18.7/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= @@ -248,8 +247,6 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= -github.com/segmentio/kafka-go v0.4.38 h1:iQdOBbUSdfuYlFpvjuALgj7N6DrdPA0HfB4AhREOdtg= -github.com/segmentio/kafka-go v0.4.38/go.mod h1:ikyuGon/60MN/vXFgykf7Zm8P5Be49gJU6vezwjnnhU= github.com/sirupsen/logrus v1.9.1 h1:Ou41VVR3nMWWmTiEUnj0OlsgOSCUFgsPAOl6jRIcVtQ= github.com/sirupsen/logrus v1.9.1/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/spiffe/go-spiffe/v2 v2.7.0 h1:uXe1MflJoHw58wAUvxVlcM7WpKtijWG7I1UidcGh6g4= @@ -266,10 +263,6 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/valyala/gozstd v1.11.0 h1:VV6qQFt+4sBBj9OJ7eKVvsFAMy59Urcs9Lgd+o5FOw0= github.com/valyala/gozstd v1.11.0/go.mod h1:y5Ew47GLlP37EkTB+B4s7r6A5rdaeB7ftbl9zoYiIPQ= -github.com/xdg/scram v1.0.5 h1:TuS0RFmt5Is5qm9Tm2SoD89OPqe4IRiFtyFY4iwWXsw= -github.com/xdg/scram v1.0.5/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= -github.com/xdg/stringprep v1.0.3 h1:cmL5Enob4W83ti/ZHuZLuKD/xqJfus4fVPwE+/BDm+4= -github.com/xdg/stringprep v1.0.3/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= go.einride.tech/aip v0.79.0 h1:19zdPlZzlUvxOA8syAFw4LkdJdXepzyTl6gt9XEeqdU= go.einride.tech/aip v0.79.0/go.mod h1:E8+wdTApA70odnpFzJgsGogHozC2JCIhFJBKPr8bVig= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= @@ -302,7 +295,6 @@ gocloud.dev v0.46.0 h1:niIuZwSjMtBx8K+ITB2s5kZullB13PGOS2ZoQPZxQ4Q= gocloud.dev v0.46.0/go.mod h1:ACQe+2qO+hEO+pdcvvsM+RB63r8TyGD1W3ESCLFyzvM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -315,8 +307,6 @@ golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220706163947-c90051bbdb60/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.58.0 h1:ynWG7rqYi4ccpTEuPZ2QGWHktVEM9DMCj9yzDE0Q7To= golang.org/x/net v0.58.0/go.mod h1:YwCddHnFlT7eLQqVprV19OnhLGtc5xOKgE0RyqgfWAU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -331,21 +321,13 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo= golang.org/x/sys v0.48.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.42.0 h1:JbOZXgfeCPU9gacVtYliJqOhD+zhrEqK4LfdpmlUZqI= golang.org/x/text v0.42.0/go.mod h1:ojzP1Z+2QtioaF8DTtO8K5q7JWVVYwZKenzujK0Zd0E= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= diff --git a/internal/occurrence/kafka.go b/internal/occurrence/kafka.go deleted file mode 100644 index 4c24edf8..00000000 --- a/internal/occurrence/kafka.go +++ /dev/null @@ -1,21 +0,0 @@ -package occurrence - -import ( - "encoding/json" - - "github.com/segmentio/kafka-go" -) - -func GenerateKafkaMessageBatch(occurrences []*Occurrence) ([]kafka.Message, error) { - messages := make([]kafka.Message, 0, len(occurrences)) - for _, o := range occurrences { - b, err := json.Marshal(o) - if err != nil { - return nil, err - } - messages = append(messages, kafka.Message{ - Value: b, - }) - } - return messages, nil -} diff --git a/scripts/run.sh b/scripts/run.sh index c9f00476..1e3b433e 100755 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -2,7 +2,6 @@ set -eou pipefail -export KAFKA_AUTO_CREATE_TOPICS_ENABLE="true" export PORT="8085" export STORAGE_EMULATOR_HOST="http://0.0.0.0:8888/"