mirror of
https://github.com/coredns/coredns.git
synced 2025-11-01 18:53:43 -04:00
plugin/metadata: finish documentation (#1951)
* plugin/metadata: finish documentation Finish the README.md, add corner case in the IsLabel test and reword some code comments slightly. Generate the man-pages and add man/coredns-metadata.7 as well. Signed-off-by: Miek Gieben <miek@miek.nl> * Fix test Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
@@ -8,15 +8,20 @@
|
||||
|
||||
By enabling *metadata* any plugin that implements [metadata.Provider
|
||||
interface](https://godoc.org/github.com/coredns/coredns/plugin/metadata#Provider) will be called for
|
||||
each DNS query, at beginning of the process for that query, in order to add it's own Metadata to
|
||||
each DNS query, at beginning of the process for that query, in order to add it's own meta data to
|
||||
context.
|
||||
|
||||
The metadata 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 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.
|
||||
|
||||
TODO: write about naming of the keys (labels).
|
||||
TODO: write about extracting and using
|
||||
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
|
||||
|
||||
@@ -28,7 +33,7 @@ metadata [ZONES... ]
|
||||
|
||||
## Plugins
|
||||
|
||||
metadata.Provider interface needs to be implemented by each plugin willing to provide metadata
|
||||
`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.
|
||||
|
||||
@@ -36,7 +41,7 @@ Note: this method should work quickly, because it is called for every request.
|
||||
|
||||
## Examples
|
||||
|
||||
There are currently no in tree plugins that write or use metadata.
|
||||
The *rewrite* plugin uses meta data to rewrite requests.
|
||||
|
||||
## Also See
|
||||
|
||||
|
||||
Reference in New Issue
Block a user