Documentation ¶
Overview ¶
Package testing provides utility functions for testing Module and MetricSet implementations.
MetricSet Example ¶
This is an example showing how to use this package to test a MetricSet. By using these methods you ensure the MetricSet is instantiated in the same way that Metricbeat does it and with the same validations.
package mymetricset_test import ( mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) func TestFetch(t *testing.T) { f := mbtest.NewEventFetcher(t, getConfig()) event, err := f.Fetch() if err != nil { t.Fatal(err) } t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) // Test event attributes... } func getConfig() map[string]interface{} { return map[string]interface{}{ "module": "mymodule", "metricsets": []string{"status"}, "hosts": []string{mymodule.GetHostFromEnv()}, } }
Index ¶
- func CreateFullEvent(ms mb.MetricSet, metricSetData common.MapStr) beat.Event
- func NewEventFetcher(t testing.TB, config interface{}) mb.EventFetcher
- func NewEventsFetcher(t testing.TB, config interface{}) mb.EventsFetcher
- func NewPushMetricSet(t testing.TB, config interface{}) mb.PushMetricSet
- func NewPushMetricSetV2(t testing.TB, config interface{}) mb.PushMetricSetV2
- func NewReportingMetricSet(t testing.TB, config interface{}) mb.ReportingMetricSet
- func ReportingFetch(metricSet mb.ReportingMetricSet) ([]common.MapStr, []error)
- func RunPushMetricSet(duration time.Duration, metricSet mb.PushMetricSet) ([]common.MapStr, []error)
- func RunPushMetricSetV2(timeout time.Duration, waitEvents int, metricSet mb.PushMetricSetV2) []mb.Event
- func StandardizeEvent(ms mb.MetricSet, e mb.Event, modifiers ...mb.EventModifier) beat.Event
- func WriteEvent(f mb.EventFetcher, t testing.TB) error
- func WriteEventToDataJSON(t testing.TB, fullEvent beat.Event)
- func WriteEvents(f mb.EventsFetcher, t testing.TB) error
- type TestModule
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateFullEvent ¶
CreateFullEvent builds a full event given the data generated by a MetricSet. This simulates the output of Metricbeat as if it were 2016-05-23T08:05:34.853Z and the hostname is host.example.com.
func NewEventFetcher ¶
func NewEventFetcher(t testing.TB, config interface{}) mb.EventFetcher
NewEventFetcher instantiates a new EventFetcher using the given configuration. The ModuleFactory and MetricSetFactory are obtained from the global Registry.
func NewEventsFetcher ¶
func NewEventsFetcher(t testing.TB, config interface{}) mb.EventsFetcher
NewEventsFetcher instantiates a new EventsFetcher using the given configuration. The ModuleFactory and MetricSetFactory are obtained from the global Registry.
func NewPushMetricSet ¶
func NewPushMetricSet(t testing.TB, config interface{}) mb.PushMetricSet
NewPushMetricSet instantiates a new PushMetricSet using the given configuration. The ModuleFactory and MetricSetFactory are obtained from the global Registry.
func NewPushMetricSetV2 ¶
func NewPushMetricSetV2(t testing.TB, config interface{}) mb.PushMetricSetV2
NewPushMetricSetV2 instantiates a new PushMetricSetV2 using the given configuration. The ModuleFactory and MetricSetFactory are obtained from the global Registry.
func NewReportingMetricSet ¶
func NewReportingMetricSet(t testing.TB, config interface{}) mb.ReportingMetricSet
func ReportingFetch ¶
func ReportingFetch(metricSet mb.ReportingMetricSet) ([]common.MapStr, []error)
ReportingFetch runs the given reporting metricset and returns all of the events and errors that occur during that period.
func RunPushMetricSet ¶
func RunPushMetricSet(duration time.Duration, metricSet mb.PushMetricSet) ([]common.MapStr, []error)
RunPushMetricSet run the given push metricset for the specific amount of time and returns all of the events and errors that occur during that period.
func RunPushMetricSetV2 ¶
func RunPushMetricSetV2(timeout time.Duration, waitEvents int, metricSet mb.PushMetricSetV2) []mb.Event
RunPushMetricSetV2 run the given push metricset for the specific amount of time and returns all of the events and errors that occur during that period.
func StandardizeEvent ¶
StandardizeEvent builds a beat.Event given the data generated by a MetricSet. This simulates the output as if it were 2016-05-23T08:05:34.853Z and the hostname is host.example.com and the RTT is 155us.
func WriteEvent ¶
func WriteEvent(f mb.EventFetcher, t testing.TB) error
WriteEvent fetches a single event writes the output to a ./_meta/data.json file.
func WriteEventToDataJSON ¶
WriteEventToDataJSON writes the given event as "pretty" JSON to a ./_meta/data.json file. If the -data CLI flag is unset or false then the method is a no-op.
func WriteEvents ¶
func WriteEvents(f mb.EventsFetcher, t testing.TB) error
WriteEvents fetches events and writes the first event to a ./_meta/data.json file.
Types ¶
type TestModule ¶
type TestModule struct { ModName string ModConfig mb.ModuleConfig RawConfig *common.Config }
func NewTestModule ¶
func NewTestModule(t testing.TB, config interface{}) *TestModule
func (*TestModule) Config ¶
func (m *TestModule) Config() mb.ModuleConfig
func (*TestModule) Name ¶
func (m *TestModule) Name() string
func (*TestModule) UnpackConfig ¶
func (m *TestModule) UnpackConfig(to interface{}) error