Files
9d1a8a0837 feat: add signozkafkaexporter (#195)
* feat: add signozkafkaexporter

* feat: select kafka topic based on tenant id

* feat: add kafkareceiver

* chore: expose sarama client's fetch config to signozkafkareceiver

* chore: integrate signozkafkaexporters and receivers with v0.88.0

* chore: update go.mod and go.sum

* chore: modify testdata/config.yaml

* chore: fix tests

---------

Co-authored-by: Prashant Shahi <[email protected]>
Co-authored-by: Vishal Sharma <[email protected]>
2023-11-16 18:06:39 +05:30

44 lines
1.3 KiB
Go

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package kafka // import "github.com/open-telemetry/opentelemetry-collector-contrib/internal/kafka"
import (
"github.com/IBM/sarama"
"github.com/xdg-go/scram"
)
var _ sarama.SCRAMClient = (*XDGSCRAMClient)(nil)
// XDGSCRAMClient uses xdg-go scram to authentication conversation
type XDGSCRAMClient struct {
*scram.Client
*scram.ClientConversation
scram.HashGeneratorFcn
}
// Begin starts the XDGSCRAMClient conversation.
func (x *XDGSCRAMClient) Begin(userName, password, authzID string) (err error) {
x.Client, err = x.HashGeneratorFcn.NewClient(userName, password, authzID)
if err != nil {
return err
}
x.ClientConversation = x.Client.NewConversation()
return nil
}
// Step takes a string provided from a server (or just an empty string for the
// very first conversation step) and attempts to move the authentication
// conversation forward. It returns a string to be sent to the server or an
// error if the server message is invalid. Calling Step after a conversation
// completes is also an error.
func (x *XDGSCRAMClient) Step(challenge string) (response string, err error) {
return x.ClientConversation.Step(challenge)
}
// Done returns true if the conversation is completed or has errored.
func (x *XDGSCRAMClient) Done() bool {
return x.ClientConversation.Done()
}