Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

exporter/prometheus: unexport type and method that are not needed outside the package #7295

Merged
merged 1 commit into from
Jan 20, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
- `tanzuobservabilityexporter`: Use semantic conventions for status.message (#7126)
- `k8sattributesprocessor`: Move `kube` and `observability` packages to `internal` folder (#7159)
- `zookeeperreceiver`: Refactored metrics to have correct units, types, and combined some metrics via attributes. (#7280)
- `prometheusremotewriteexporter`: `PRWExporter` struct and `NewPRWExporter()`
function are now unexported. (#TBD)

## 🚀 New components 🚀

Expand Down
22 changes: 11 additions & 11 deletions exporter/prometheusremotewriteexporter/exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ import (

const maxBatchByteSize = 3000000

// PRWExporter converts OTLP metrics to Prometheus remote write TimeSeries and sends them to a remote endpoint.
type PRWExporter struct {
// prwExporter converts OTLP metrics to Prometheus remote write TimeSeries and sends them to a remote endpoint.
type prwExporter struct {
namespace string
externalLabels map[string]string
endpointURL *url.URL
Expand All @@ -52,8 +52,8 @@ type PRWExporter struct {
clientSettings *confighttp.HTTPClientSettings
}

// NewPRWExporter initializes a new PRWExporter instance and sets fields accordingly.
func NewPRWExporter(cfg *Config, buildInfo component.BuildInfo) (*PRWExporter, error) {
// newPRWExporter initializes a new prwExporter instance and sets fields accordingly.
func newPRWExporter(cfg *Config, buildInfo component.BuildInfo) (*prwExporter, error) {
sanitizedLabels, err := validateAndSanitizeExternalLabels(cfg.ExternalLabels)
if err != nil {
return nil, err
Expand All @@ -66,7 +66,7 @@ func NewPRWExporter(cfg *Config, buildInfo component.BuildInfo) (*PRWExporter, e

userAgentHeader := fmt.Sprintf("%s/%s", strings.ReplaceAll(strings.ToLower(buildInfo.Description), " ", "-"), buildInfo.Version)

return &PRWExporter{
return &prwExporter{
namespace: cfg.Namespace,
externalLabels: sanitizedLabels,
endpointURL: endpointURL,
Expand All @@ -79,14 +79,14 @@ func NewPRWExporter(cfg *Config, buildInfo component.BuildInfo) (*PRWExporter, e
}

// Start creates the prometheus client
func (prwe *PRWExporter) Start(_ context.Context, host component.Host) (err error) {
func (prwe *prwExporter) Start(_ context.Context, host component.Host) (err error) {
prwe.client, err = prwe.clientSettings.ToClient(host.GetExtensions())
return err
}

// Shutdown stops the exporter from accepting incoming calls(and return error), and wait for current export operations
// to finish before returning
func (prwe *PRWExporter) Shutdown(context.Context) error {
func (prwe *prwExporter) Shutdown(context.Context) error {
close(prwe.closeChan)
prwe.wg.Wait()
return nil
Expand All @@ -95,7 +95,7 @@ func (prwe *PRWExporter) Shutdown(context.Context) error {
// PushMetrics converts metrics to Prometheus remote write TimeSeries and send to remote endpoint. It maintain a map of
// TimeSeries, validates and handles each individual metric, adding the converted TimeSeries to the map, and finally
// exports the map.
func (prwe *PRWExporter) PushMetrics(ctx context.Context, md pdata.Metrics) error {
func (prwe *prwExporter) PushMetrics(ctx context.Context, md pdata.Metrics) error {
prwe.wg.Add(1)
defer prwe.wg.Done()

Expand Down Expand Up @@ -199,7 +199,7 @@ func validateAndSanitizeExternalLabels(externalLabels map[string]string) (map[st
return sanitizedLabels, nil
}

func (prwe *PRWExporter) addNumberDataPointSlice(dataPoints pdata.NumberDataPointSlice, tsMap map[string]*prompb.TimeSeries, resource pdata.Resource, metric pdata.Metric) error {
func (prwe *prwExporter) addNumberDataPointSlice(dataPoints pdata.NumberDataPointSlice, tsMap map[string]*prompb.TimeSeries, resource pdata.Resource, metric pdata.Metric) error {
if dataPoints.Len() == 0 {
return consumererror.NewPermanent(fmt.Errorf("empty data points. %s is dropped", metric.Name()))
}
Expand All @@ -210,7 +210,7 @@ func (prwe *PRWExporter) addNumberDataPointSlice(dataPoints pdata.NumberDataPoin
}

// export sends a Snappy-compressed WriteRequest containing TimeSeries to a remote write endpoint in order
func (prwe *PRWExporter) export(ctx context.Context, tsMap map[string]*prompb.TimeSeries) []error {
func (prwe *prwExporter) export(ctx context.Context, tsMap map[string]*prompb.TimeSeries) []error {
var errs []error
// Calls the helper function to convert and batch the TsMap to the desired format
requests, err := batchTimeSeries(tsMap, maxBatchByteSize)
Expand Down Expand Up @@ -252,7 +252,7 @@ func (prwe *PRWExporter) export(ctx context.Context, tsMap map[string]*prompb.Ti
return errs
}

func (prwe *PRWExporter) execute(ctx context.Context, writeReq *prompb.WriteRequest) error {
func (prwe *prwExporter) execute(ctx context.Context, writeReq *prompb.WriteRequest) error {
// Uses proto.Marshal to convert the WriteRequest into bytes array
data, err := proto.Marshal(writeReq)
if err != nil {
Expand Down
10 changes: 5 additions & 5 deletions exporter/prometheusremotewriteexporter/exporter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ func Test_NewPRWExporter(t *testing.T) {
cfg.ExternalLabels = tt.externalLabels
cfg.Namespace = tt.namespace
cfg.RemoteWriteQueue.NumConsumers = 1
prwe, err := NewPRWExporter(cfg, tt.buildInfo)
prwe, err := newPRWExporter(cfg, tt.buildInfo)

if tt.returnErrorOnCreate {
assert.Error(t, err)
Expand Down Expand Up @@ -193,7 +193,7 @@ func Test_Start(t *testing.T) {
cfg.RemoteWriteQueue.NumConsumers = 1
cfg.HTTPClientSettings = tt.clientSettings

prwe, err := NewPRWExporter(cfg, tt.buildInfo)
prwe, err := newPRWExporter(cfg, tt.buildInfo)
assert.NoError(t, err)
assert.NotNil(t, prwe)

Expand All @@ -209,7 +209,7 @@ func Test_Start(t *testing.T) {

// Test_Shutdown checks after Shutdown is called, incoming calls to PushMetrics return error.
func Test_Shutdown(t *testing.T) {
prwe := &PRWExporter{
prwe := &prwExporter{
wg: new(sync.WaitGroup),
closeChan: make(chan struct{}),
}
Expand Down Expand Up @@ -335,7 +335,7 @@ func runExportPipeline(ts *prompb.TimeSeries, endpoint *url.URL) []error {
Version: "1.0",
}
// after this, instantiate a CortexExporter with the current HTTP client and endpoint set to passed in endpoint
prwe, err := NewPRWExporter(cfg, buildInfo)
prwe, err := newPRWExporter(cfg, buildInfo)
if err != nil {
errs = append(errs, err)
return errs
Expand Down Expand Up @@ -627,7 +627,7 @@ func Test_PushMetrics(t *testing.T) {
Description: "OpenTelemetry Collector",
Version: "1.0",
}
prwe, nErr := NewPRWExporter(cfg, buildInfo)
prwe, nErr := newPRWExporter(cfg, buildInfo)
require.NoError(t, nErr)
require.NoError(t, prwe.Start(context.Background(), componenttest.NewNopHost()))
err := prwe.PushMetrics(context.Background(), *tt.md)
Expand Down
2 changes: 1 addition & 1 deletion exporter/prometheusremotewriteexporter/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ func createMetricsExporter(_ context.Context, set component.ExporterCreateSettin
return nil, errors.New("invalid configuration")
}

prwe, err := NewPRWExporter(prwCfg, set.BuildInfo)
prwe, err := newPRWExporter(prwCfg, set.BuildInfo)
if err != nil {
return nil, err
}
Expand Down