From 83b0fd41e9733b116372a44c525e160ad6b2575a Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Wed, 19 Feb 2020 11:12:43 -0800 Subject: [PATCH] Adding integration test for kibana Metricbeat module, xpack code path (#15965) (#16309) * Adding integration test for kibana MB module, xpack code path * Fixing imports formatting * Adding missing import * Replace assert.* with require.* --- .../module/kibana/kibana_integration_test.go | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 metricbeat/module/kibana/kibana_integration_test.go diff --git a/metricbeat/module/kibana/kibana_integration_test.go b/metricbeat/module/kibana/kibana_integration_test.go new file mode 100644 index 00000000000..301a5031a30 --- /dev/null +++ b/metricbeat/module/kibana/kibana_integration_test.go @@ -0,0 +1,65 @@ +// 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. + +// +build integration + +package kibana_test + +import ( + "testing" + + "github.com/stretchr/testify/require" + + "github.com/elastic/beats/libbeat/tests/compose" + mbtest "github.com/elastic/beats/metricbeat/mb/testing" + "github.com/elastic/beats/metricbeat/module/kibana" + _ "github.com/elastic/beats/metricbeat/module/kibana/stats" +) + +var xpackMetricSets = []string{ + "stats", +} + +func TestXPackEnabled(t *testing.T) { + service := compose.EnsureUpWithTimeout(t, 300, "kibana") + + metricSetToTypeMap := map[string]string{ + "stats": "kibana_stats", + } + + config := getXPackConfig(service.Host()) + + metricSets := mbtest.NewReportingMetricSetV2Errors(t, config) + for _, metricSet := range metricSets { + events, errs := mbtest.ReportingFetchV2Error(metricSet) + require.Empty(t, errs) + require.NotEmpty(t, events) + + event := events[0] + require.Equal(t, metricSetToTypeMap[metricSet.Name()], event.RootFields["type"]) + require.Regexp(t, `^.monitoring-kibana-\d-mb`, event.Index) + } +} + +func getXPackConfig(host string) map[string]interface{} { + return map[string]interface{}{ + "module": kibana.ModuleName, + "metricsets": xpackMetricSets, + "hosts": []string{host}, + "xpack.enabled": true, + } +}