diff --git a/changelogs/8.12.asciidoc b/changelogs/8.12.asciidoc index ea2d8013de7..4d90ec9aa4e 100644 --- a/changelogs/8.12.asciidoc +++ b/changelogs/8.12.asciidoc @@ -13,6 +13,7 @@ https://github.com/elastic/apm-server/compare/8.11\...8.12[View commits] ==== Breaking Changes - The unsupported apm_data_stream_migration ingest pipeline has been removed {pull}12102[12102]. - "publish_ready" is always false in the "GET /" response until events are received by apm-server {pull}12150[12150] +- Reverts a breaking change that ignored the beat name. This is visible in Stack Monitoring {pull}12176[12176] [float] ==== Bug fixes diff --git a/internal/beatcmd/beat.go b/internal/beatcmd/beat.go index a14dc566018..865adfb9521 100644 --- a/internal/beatcmd/beat.go +++ b/internal/beatcmd/beat.go @@ -102,6 +102,10 @@ func NewBeat(args BeatParams) (*Beat, error) { return nil, err } + beatName := cfg.Name + if beatName == "" { + beatName = hostname + } b := &Beat{ Beat: beat.Beat{ Info: beat.Info{ @@ -109,7 +113,7 @@ func NewBeat(args BeatParams) (*Beat, error) { ElasticLicensed: args.ElasticLicensed, IndexPrefix: "apm-server", Version: version.Version, - Name: hostname, + Name: beatName, Hostname: hostname, StartTime: time.Now(), EphemeralID: metricreport.EphemeralID(), diff --git a/internal/beatcmd/beat_test.go b/internal/beatcmd/beat_test.go index e676b645464..9285a018ae5 100644 --- a/internal/beatcmd/beat_test.go +++ b/internal/beatcmd/beat_test.go @@ -75,7 +75,7 @@ func TestRunMaxProcs(t *testing.T) { func TestRunnerParams(t *testing.T) { calls := make(chan RunnerParams, 1) - b := newBeat(t, "output.console.enabled: true", func(args RunnerParams) (Runner, error) { + b := newBeat(t, "output.console.enabled: true\nname: my-custom-name", func(args RunnerParams) (Runner, error) { calls <- args return newNopRunner(args), nil }) @@ -86,6 +86,7 @@ func TestRunnerParams(t *testing.T) { assert.Equal(t, "apm-server", args.Info.Beat) assert.Equal(t, version.Version, args.Info.Version) assert.True(t, args.Info.ElasticLicensed) + assert.Equal(t, "my-custom-name", b.Beat.Info.Name) assert.NotZero(t, args.Info.ID) assert.NotZero(t, args.Info.EphemeralID) assert.NotZero(t, args.Info.FirstStart) @@ -100,6 +101,7 @@ func TestRunnerParams(t *testing.T) { err := args.Config.Unpack(&m) require.NoError(t, err) assert.Equal(t, map[string]interface{}{ + "name": "my-custom-name", "output": map[string]interface{}{ "console": map[string]interface{}{ "enabled": true, diff --git a/internal/beatcmd/config.go b/internal/beatcmd/config.go index 48f76db5f9d..8b84263e6ca 100644 --- a/internal/beatcmd/config.go +++ b/internal/beatcmd/config.go @@ -35,6 +35,10 @@ type Config struct { // APMServer holds apm-server.* configuration. APMServer *config.C `config:"apm-server"` + // Allow overwriting beat.Info.Name. This is mainly for stack monitoring + // and reporting purposes. + Name string `config:"name"` + MaxProcs int `config:"max_procs"` GCPercent int `config:"gc_percent"`