Files
coredns/plugin/metadata
Miek Gieben f3134da45e Clean up tests logging (#1979)
* Clean up tests logging

This cleans up the travis logs so you can see the failures better.

Older tests in tests/ would call log.SetOutput(ioutil.Discard) in
a haphazard way. This add log.Discard and put an `init` function in each
package's dir (no way to do this globally). The cleanup in tests/ is
clear.

All plugins also got this init function to have some uniformity and kill
any (future) logging there in the tests as well.

There is a one-off in pkg/healthcheck because that does log.

Signed-off-by: Miek Gieben <miek@miek.nl>

* bring back original log_test.go

Signed-off-by: Miek Gieben <miek@miek.nl>

* suppress logging here as well

Signed-off-by: Miek Gieben <miek@miek.nl>
2018-07-19 16:23:06 +01:00
..
2018-07-19 16:23:06 +01:00
2018-07-09 08:08:02 -04:00

metadata

Name

metadata - enable a meta data collector.

Description

By enabling metadata any plugin that implements metadata.Provider interface will be called for each DNS query, at beginning of the process for that query, in order to add it's own meta data to context.

The meta data collected will be available for all plugins, via the Context parameter provided in the ServeDNS function. The package (code) documentation has examples on how to inspect and retrieve metadata a plugin might be interested in.

The meta data is added by setting a label with a value in the context. These labels should be named plugin/NAME, where NAME is something descriptive. The only hard requirement the metadata plugin enforces is that the labels contains a slash. See the documentation for metadata.SetValueFunc.

The value stored is a string. The empty string signals "no meta data". See the documentation for metadata.ValueFunc on how to retrieve this.

Syntax

metadata [ZONES... ]
  • ZONES zones metadata should be invoked for.

Plugins

metadata.Provider interface needs to be implemented by each plugin willing to provide metadata information for other plugins. It will be called by metadata and gather the information from all plugins in context.

Note: this method should work quickly, because it is called for every request.

Examples

The rewrite plugin uses meta data to rewrite requests.

Also See

The Provider interface and the package level documentation.