Skip to content

Commit

Permalink
Set default indices in code and disable ILM.
Browse files Browse the repository at this point in the history
* Set index default configuration in code, by using new supporter interface
* Set ILM noop supporter to disable ILM in APM
* adapt system tests to use default indices configuration by default

fixes #1480
fixes #1852
  • Loading branch information
simitt committed Feb 4, 2019
1 parent e85432f commit 28b69a9
Show file tree
Hide file tree
Showing 13 changed files with 754 additions and 228 deletions.
48 changes: 24 additions & 24 deletions _meta/beat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -274,30 +274,30 @@ output.elasticsearch:
# * `setup.template.name`
# * `setup.template.pattern`
#index: "apm-%{[observer.version]}-%{+yyyy.MM.dd}"
indices:
- index: "apm-%{[observer.version]}-sourcemap"
when.contains:
processor.event: "sourcemap"

- index: "apm-%{[observer.version]}-error-%{+yyyy.MM.dd}"
when.contains:
processor.event: "error"

- index: "apm-%{[observer.version]}-transaction-%{+yyyy.MM.dd}"
when.contains:
processor.event: "transaction"

- index: "apm-%{[observer.version]}-span-%{+yyyy.MM.dd}"
when.contains:
processor.event: "span"

- index: "apm-%{[observer.version]}-metric-%{+yyyy.MM.dd}"
when.contains:
processor.event: "metric"

- index: "apm-%{[observer.version]}-onboarding-%{+yyyy.MM.dd}"
when.contains:
processor.event: "onboarding"
#indices:
# - index: "apm-%{[observer.version]}-sourcemap"
# when.contains:
# processor.event: "sourcemap"
#
# - index: "apm-%{[observer.version]}-error-%{+yyyy.MM.dd}"
# when.contains:
# processor.event: "error"
#
# - index: "apm-%{[observer.version]}-transaction-%{+yyyy.MM.dd}"
# when.contains:
# processor.event: "transaction"
#
# - index: "apm-%{[observer.version]}-span-%{+yyyy.MM.dd}"
# when.contains:
# processor.event: "span"
#
# - index: "apm-%{[observer.version]}-metric-%{+yyyy.MM.dd}"
# when.contains:
# processor.event: "metric"
#
# - index: "apm-%{[observer.version]}-onboarding-%{+yyyy.MM.dd}"
# when.contains:
# processor.event: "onboarding"

# A pipeline is a definition of processors applied to documents when writing them to Elasticsearch.
# APM Server comes with a default pipeline definition, located at `ingets/pipeline/definition.json`.
Expand Down
48 changes: 24 additions & 24 deletions apm-server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -274,30 +274,30 @@ output.elasticsearch:
# * `setup.template.name`
# * `setup.template.pattern`
#index: "apm-%{[observer.version]}-%{+yyyy.MM.dd}"
indices:
- index: "apm-%{[observer.version]}-sourcemap"
when.contains:
processor.event: "sourcemap"

- index: "apm-%{[observer.version]}-error-%{+yyyy.MM.dd}"
when.contains:
processor.event: "error"

- index: "apm-%{[observer.version]}-transaction-%{+yyyy.MM.dd}"
when.contains:
processor.event: "transaction"

- index: "apm-%{[observer.version]}-span-%{+yyyy.MM.dd}"
when.contains:
processor.event: "span"

- index: "apm-%{[observer.version]}-metric-%{+yyyy.MM.dd}"
when.contains:
processor.event: "metric"

- index: "apm-%{[observer.version]}-onboarding-%{+yyyy.MM.dd}"
when.contains:
processor.event: "onboarding"
#indices:
# - index: "apm-%{[observer.version]}-sourcemap"
# when.contains:
# processor.event: "sourcemap"
#
# - index: "apm-%{[observer.version]}-error-%{+yyyy.MM.dd}"
# when.contains:
# processor.event: "error"
#
# - index: "apm-%{[observer.version]}-transaction-%{+yyyy.MM.dd}"
# when.contains:
# processor.event: "transaction"
#
# - index: "apm-%{[observer.version]}-span-%{+yyyy.MM.dd}"
# when.contains:
# processor.event: "span"
#
# - index: "apm-%{[observer.version]}-metric-%{+yyyy.MM.dd}"
# when.contains:
# processor.event: "metric"
#
# - index: "apm-%{[observer.version]}-onboarding-%{+yyyy.MM.dd}"
# when.contains:
# processor.event: "onboarding"

# A pipeline is a definition of processors applied to documents when writing them to Elasticsearch.
# APM Server comes with a default pipeline definition, located at `ingets/pipeline/definition.json`.
Expand Down
1 change: 1 addition & 0 deletions changelogs/head.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
- Add observer.version_major {pull}1857[1857].
- Change transaction.name to keyword, add transaction.name.text {pull}1859[1859].
- Change error.culprit to keyword, limit length on intake {pull}1859[1859].
- Move default index configuration to code {pull}1865[1865].

[float]
==== Removed
Expand Down
5 changes: 5 additions & 0 deletions cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ package cmd
import (
"github.com/spf13/pflag"

"github.com/elastic/apm-server/idxmgmt"
"github.com/elastic/apm-server/idxmgmt/ilm"

"github.com/elastic/apm-server/beater"
_ "github.com/elastic/apm-server/include"
"github.com/elastic/beats/libbeat/cmd"
Expand Down Expand Up @@ -71,6 +74,8 @@ func init() {
Monitoring: report.Settings{
DefaultUsername: "apm_system",
},
ILM: ilm.MakeDefaultSupporter,
IndexManagement: idxmgmt.MakeDefaultSupporter,
})
// remove dashboard from export commands
for _, cmd := range RootCmd.ExportCmd.Commands() {
Expand Down
42 changes: 42 additions & 0 deletions idxmgmt/config.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
// Licensed to Elasticsearch B.V. under one or more contributor
// license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright
// ownership. Elasticsearch B.V. licenses this file to you under
// the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.

package idxmgmt

const defaultIndex = "apm-%{[observer.version]}-%{+yyyy.MM.dd}"

var defaultIndices = []map[string]interface{}{
{
"index": "apm-%{[observer.version]}-sourcemap",
"when": map[string]interface{}{"contains": map[string]interface{}{"processor.event": "sourcemap"}},
}, {
"index": "apm-%{[observer.version]}-error-%{+yyyy.MM.dd}",
"when": map[string]interface{}{"contains": map[string]interface{}{"processor.event": "error"}},
}, {
"index": "apm-%{[observer.version]}-transaction-%{+yyyy.MM.dd}",
"when": map[string]interface{}{"contains": map[string]interface{}{"processor.event": "transaction"}},
}, {
"index": "apm-%{[observer.version]}-span-%{+yyyy.MM.dd}",
"when": map[string]interface{}{"contains": map[string]interface{}{"processor.event": "span"}},
}, {
"index": "apm-%{[observer.version]}-metric-%{+yyyy.MM.dd}",
"when": map[string]interface{}{"contains": map[string]interface{}{"processor.event": "metric"}},
}, {
"index": "apm-%{[observer.version]}-onboarding-%{+yyyy.MM.dd}",
"when": map[string]interface{}{"contains": map[string]interface{}{"processor.event": "onboarding"}},
},
}
31 changes: 31 additions & 0 deletions idxmgmt/ilm/supporter_factory.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// Licensed to Elasticsearch B.V. under one or more contributor
// license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright
// ownership. Elasticsearch B.V. licenses this file to you under
// the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.

package ilm

import (
"github.com/elastic/beats/libbeat/beat"
"github.com/elastic/beats/libbeat/common"
"github.com/elastic/beats/libbeat/idxmgmt/ilm"
"github.com/elastic/beats/libbeat/logp"
)

// MakeDefaultSupporter creates the ILM supporter for APM that is passed to libbeat.
// Currently ILM is disabled by using a NoopSupport.
func MakeDefaultSupporter(_ *logp.Logger, info beat.Info, config *common.Config) (ilm.Supporter, error) {
return ilm.NoopSupport(info, config)
}
Loading

0 comments on commit 28b69a9

Please sign in to comment.