diff --git a/.chloggen/add-solarwinds-apm-settings-extension.yaml b/.chloggen/add-solarwinds-apm-settings-extension.yaml new file mode 100644 index 0000000000000..2f3c763baf5d5 --- /dev/null +++ b/.chloggen/add-solarwinds-apm-settings-extension.yaml @@ -0,0 +1,27 @@ +# Use this changelog template to create an entry for release notes. + +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: new_component + +# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver) +component: extension/solarwindsapmsettingsextension + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Add a new extension that gets Solarwinds APM specific settings from Solarwinds APM collector and generates `/tmp/solarwinds-apm-settings.json` & `/tmp/solarwinds-apm-settings-raw` periodically. + +# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists. +issues: [27668] + +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: + +# If your change doesn't affect end users or the exported elements of any package, +# you should instead start your pull request title with [chore] or use the "Skip Changelog" label. +# Optional: The change log or logs in which this entry should be included. +# e.g. '[user]' or '[user, api]' +# Include 'user' if the change is relevant to end users. +# Include 'api' if there is a change to a library API. +# Default: '[user]' +change_logs: [] \ No newline at end of file diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 0d924990caa9a..5378ca0eb462a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -107,6 +107,7 @@ extension/opampextension/ @open-telemetry/collect extension/pprofextension/ @open-telemetry/collector-contrib-approvers @MovieStoreGuy extension/remotetapextension/ @open-telemetry/collector-contrib-approvers @atoulme extension/sigv4authextension/ @open-telemetry/collector-contrib-approvers @Aneurysm9 @erichsueh3 +extension/solarwindsapmsettingsextension/ @open-telemetry/collector-contrib-approvers @jerrytfleung @cheempz extension/storage/ @open-telemetry/collector-contrib-approvers @dmitryax @atoulme @djaglowski extension/storage/dbstorage/ @open-telemetry/collector-contrib-approvers @dmitryax @atoulme extension/storage/filestorage/ @open-telemetry/collector-contrib-approvers @djaglowski diff --git a/extension/solarwindsapmsettingsextension/README.md b/extension/solarwindsapmsettingsextension/README.md index 519f6d92b9478..88f766bf985d1 100644 --- a/extension/solarwindsapmsettingsextension/README.md +++ b/extension/solarwindsapmsettingsextension/README.md @@ -6,12 +6,13 @@ | Stability | [development] | | Distributions | [] | | Issues | [![Open issues](https://img.shields.io/github/issues-search/open-telemetry/opentelemetry-collector-contrib?query=is%3Aissue%20is%3Aopen%20label%3Aextension%2Fsolarwindsapmsettings%20&label=open&color=orange&logo=opentelemetry)](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aopen+is%3Aissue+label%3Aextension%2Fsolarwindsapmsettings) [![Closed issues](https://img.shields.io/github/issues-search/open-telemetry/opentelemetry-collector-contrib?query=is%3Aissue%20is%3Aclosed%20label%3Aextension%2Fsolarwindsapmsettings%20&label=closed&color=blue&logo=opentelemetry)](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aclosed+is%3Aissue+label%3Aextension%2Fsolarwindsapmsettings) | +| [Code Owners](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/CONTRIBUTING.md#becoming-a-code-owner) | [@jerrytfleung](https://www.github.com/jerrytfleung), [@cheempz](https://www.github.com/cheempz) | [development]: https://github.com/open-telemetry/opentelemetry-collector#development ## Overview -The Solarwinds APM Settings extension gets Solarwinds APM specific settings from Solarwinds APM collector and outputs `/tmp/solarwinds-apm-settings.json` periodically +The Solarwinds APM Settings extension gets Solarwinds APM specific settings from Solarwinds APM collector and `/tmp/solarwinds-apm-settings.json` & `/tmp/solarwinds-apm-settings-raw` periodically. ## Configuration diff --git a/extension/solarwindsapmsettingsextension/config.go b/extension/solarwindsapmsettingsextension/config.go index b2621abd30299..2d34aacea1901 100644 --- a/extension/solarwindsapmsettingsextension/config.go +++ b/extension/solarwindsapmsettingsextension/config.go @@ -1,4 +1,4 @@ -package solarwindsapmsettingsextension +package solarwindsapmsettingsextension // import "github.com/open-telemetry/opentelemetry-collector-contrib/extension/solarwindsapmsettingsextension" import ( "fmt" diff --git a/extension/solarwindsapmsettingsextension/doc.go b/extension/solarwindsapmsettingsextension/doc.go index ac7a1a6b93225..efca2e67c58db 100644 --- a/extension/solarwindsapmsettingsextension/doc.go +++ b/extension/solarwindsapmsettingsextension/doc.go @@ -1,3 +1,3 @@ //go:generate mdatagen metadata.yaml -package solarwindsapmsettingsextension +package solarwindsapmsettingsextension // import "github.com/open-telemetry/opentelemetry-collector-contrib/extension/solarwindsapmsettingsextension" diff --git a/extension/solarwindsapmsettingsextension/extension.go b/extension/solarwindsapmsettingsextension/extension.go index 4054ec4bc9241..5dbbc6c52b0f4 100644 --- a/extension/solarwindsapmsettingsextension/extension.go +++ b/extension/solarwindsapmsettingsextension/extension.go @@ -1,4 +1,4 @@ -package solarwindsapmsettingsextension +package solarwindsapmsettingsextension // import "github.com/open-telemetry/opentelemetry-collector-contrib/extension/solarwindsapmsettingsextension" import ( "context" @@ -41,7 +41,7 @@ func newSolarwindsApmSettingsExtension(extensionCfg *Config, logger *zap.Logger) return settingsExtension, nil } -func Refresh(extension *solarwindsapmSettingsExtension) { +func refresh(extension *solarwindsapmSettingsExtension) { extension.logger.Info("Time to refresh from " + extension.config.Endpoint) if hostname, err := os.Hostname(); err != nil { extension.logger.Error("Unable to call os.Hostname() " + err.Error()) @@ -191,7 +191,7 @@ func (extension *solarwindsapmSettingsExtension) Start(ctx context.Context, _ co extension.client = collectorpb.NewTraceCollectorClient(extension.conn) // Refresh immediately - Refresh(extension) + refresh(extension) // setup lightweight thread to refresh var interval time.Duration @@ -204,7 +204,7 @@ func (extension *solarwindsapmSettingsExtension) Start(ctx context.Context, _ co select { case <-ticker.C: // Refresh at each ticker event - Refresh(extension) + refresh(extension) case <-ctx.Done(): extension.logger.Info("Received ctx.Done() from ticker") return diff --git a/extension/solarwindsapmsettingsextension/extension_test.go b/extension/solarwindsapmsettingsextension/extension_test.go index d35ad819fa4d0..87d0cf7e9d8f3 100644 --- a/extension/solarwindsapmsettingsextension/extension_test.go +++ b/extension/solarwindsapmsettingsextension/extension_test.go @@ -15,7 +15,7 @@ func TestCreateExtension(t *testing.T) { Interval: "1s", } ex := createAnExtension(conf, t) - ex.Shutdown(context.TODO()) + require.NoError(t, ex.Shutdown(context.TODO())) } func TestCreateExtensionWrongEndpoint(t *testing.T) { @@ -25,7 +25,7 @@ func TestCreateExtensionWrongEndpoint(t *testing.T) { Interval: "1s", } ex := createAnExtension(conf, t) - ex.Shutdown(context.TODO()) + require.NoError(t, ex.Shutdown(context.TODO())) } func TestCreateExtensionWrongKey(t *testing.T) { @@ -35,7 +35,7 @@ func TestCreateExtensionWrongKey(t *testing.T) { Interval: "1s", } ex := createAnExtension(conf, t) - ex.Shutdown(context.TODO()) + require.NoError(t, ex.Shutdown(context.TODO())) } // create extension @@ -43,7 +43,6 @@ func createAnExtension(c *Config, t *testing.T) extension.Extension { logger, err := zap.NewProduction() ex, err := newSolarwindsApmSettingsExtension(c, logger) require.NoError(t, err) - err = ex.Start(context.TODO(), nil) - require.NoError(t, err) + require.NoError(t, ex.Start(context.TODO(), nil)) return ex } diff --git a/extension/solarwindsapmsettingsextension/factory.go b/extension/solarwindsapmsettingsextension/factory.go index 6031a48cf5017..62a4da551912a 100644 --- a/extension/solarwindsapmsettingsextension/factory.go +++ b/extension/solarwindsapmsettingsextension/factory.go @@ -1,8 +1,8 @@ -package solarwindsapmsettingsextension +package solarwindsapmsettingsextension // import "github.com/open-telemetry/opentelemetry-collector-contrib/extension/solarwindsapmsettingsextension" import ( "context" - "github.com/solarwinds/opentelemetry-collector-contrib/extension/solarwindsapmsettingsextension/internal/metadata" + "github.com/open-telemetry/opentelemetry-collector-contrib/extension/solarwindsapmsettingsextension/internal/metadata" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/extension" ) diff --git a/extension/solarwindsapmsettingsextension/go.mod b/extension/solarwindsapmsettingsextension/go.mod index 57e68d3ae9277..5634e0dec93e8 100644 --- a/extension/solarwindsapmsettingsextension/go.mod +++ b/extension/solarwindsapmsettingsextension/go.mod @@ -1,4 +1,4 @@ -module github.com/solarwinds/opentelemetry-collector-contrib/extension/solarwindsapmsettingsextension +module github.com/open-telemetry/opentelemetry-collector-contrib/extension/solarwindsapmsettingsextension go 1.20 diff --git a/extension/solarwindsapmsettingsextension/metadata.yaml b/extension/solarwindsapmsettingsextension/metadata.yaml index 2d0532694a84a..632dd9c4bba5c 100644 --- a/extension/solarwindsapmsettingsextension/metadata.yaml +++ b/extension/solarwindsapmsettingsextension/metadata.yaml @@ -4,3 +4,5 @@ status: class: extension stability: development: [extension] + codeowners: + active: [ jerrytfleung, cheempz ] diff --git a/versions.yaml b/versions.yaml index 1763ac6bb674e..07bd3e669e7a8 100644 --- a/versions.yaml +++ b/versions.yaml @@ -94,6 +94,7 @@ module-sets: - github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension - github.com/open-telemetry/opentelemetry-collector-contrib/extension/remotetapextension - github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension + - github.com/open-telemetry/opentelemetry-collector-contrib/extension/solarwindsapmsettingsextension - github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/cwlogs