fluent-plugin-kubernetes_metadata_filter 0.31.0 → 0.32.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2b4c38d642cdab0da861be962c973729c33debcc
4
- data.tar.gz: 1cbac127789fb6a06ba4ee48cd7128d1e01db742
3
+ metadata.gz: 989125c79b1bd4fa6f72d872f11d0fd439e18a0c
4
+ data.tar.gz: 624665a54645b53019d3e328ec9a37f5c68472d2
5
5
  SHA512:
6
- metadata.gz: 7724d7af1b637451769dbe5ce62cd648a8981e9511cf30c02760e6a412414c8dbd73aaf90bca5d40aa2b7489c478dd5241868dbc3e686f27e527d2d159815b15
7
- data.tar.gz: '0018453e2ef894dddf016f48b6ab05e3cc511b29ff600588cfbf2149852c5098ad7de11af8964ca53d275f96be865be607655db0c3060ceffd906afaf01a0af8'
6
+ metadata.gz: 37a5dac8e9f2b76f30c610d9636559e026820ba2ca75e2c8e4c640237c3b5e72c1cde67ca4692d5b19763362b1b56c5f63af0a4e664316c7f28401faf80ab28d
7
+ data.tar.gz: 998b7939864d1ef76898511f5c8656d3f84695a2e804ca7fbb5738e5404dcbe5f74db22b44473e36fa26cdc41dfdc41d5d1c2c27f021cf0438473ee271fe8be8
data/README.md CHANGED
@@ -25,11 +25,13 @@ This must used named capture groups for `container_name`, `pod_name` & `namespac
25
25
  * `watch` - set up a watch on pods on the API server for updates to metadata (default: `true`)
26
26
  * `merge_json_log` - merge logs in JSON format as top level keys (default: `true`)
27
27
  * `preserve_json_log` - preserve JSON logs in raw form in the `log` key, only used if the previous option is true (default: `true`)
28
- * `de_dot` - replace dots in labels with configured `de_dot_separator`, required for ElasticSearch 2.x compatibility (default: `true`)
28
+ * `de_dot` - replace dots in labels and annotations with configured `de_dot_separator`, required for ElasticSearch 2.x compatibility (default: `true`)
29
29
  * `de_dot_separator` - separator to use if `de_dot` is enabled (default: `_`)
30
30
  * `use_journal` - If false (default), messages are expected to be formatted and tagged as if read by the fluentd in\_tail plugin with wildcard filename. If true, messages are expected to be formatted as if read from the systemd journal. The `MESSAGE` field has the full message. The `CONTAINER_NAME` field has the encoded k8s metadata (see below). The `CONTAINER_ID_FULL` field has the full container uuid. This requires docker to use the `--log-driver=journald` log driver.
31
31
  * `container_name_to_kubernetes_regexp` - The regular expression used to extract the k8s metadata encoded in the journal `CONTAINER_NAME` field (default: `'^(?<name_prefix>[^_]+)_(?<container_name>[^\._]+)(\.(?<container_hash>[^_]+))?_(?<pod_name>[^_]+)_(?<namespace>[^_]+)_[^_]+_[^_]+$'`
32
32
  * This corresponds to the definition [in the source](https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/dockertools/docker.go#L317)
33
+ * `include_namespace_metadata` - Collect metadata about namespace such as uid, labels and annotations (default: `false`).
34
+ Note that when this option is enabled, all label from namespace are collected, but annotations are collected according to `annotation_match` value. If `annotation_match` is not presented, no annotations will be collected from the namespace.
33
35
  * `annotation_match` - Array of regular expressions matching annotation field names. Matched annotations are added to a log record.
34
36
 
35
37
  Reading from the JSON formatted log files with `in_tail` and wildcard filenames:
@@ -110,6 +112,12 @@ Then output becomes as belows
110
112
  "container_name": "fabric8-console-container",
111
113
  "namespace_name": "default",
112
114
  "namespace_id": "23437884-8e08-4d95-850b-e94378c9b2fd",
115
+ "namespace_annotations": {
116
+ "fabric8.io/git-commit": "5e1116f63df0bac2a80bdae2ebdc563577bbdf3c"
117
+ },
118
+ "namespace_labels": {
119
+ "product_version": "v1.0.0"
120
+ },
113
121
  "labels": {
114
122
  "component": "fabric8Console"
115
123
  }
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |gem|
6
6
  gem.name = "fluent-plugin-kubernetes_metadata_filter"
7
- gem.version = "0.31.0"
7
+ gem.version = "0.32.0"
8
8
  gem.authors = ["Jimmi Dyson"]
9
9
  gem.email = ["jimmidyson@gmail.com"]
10
10
  gem.description = %q{Filter plugin to add Kubernetes metadata}
@@ -137,7 +137,7 @@ module Fluent
137
137
  return if @curr_time.to_i - @prev_time.to_i < @stats_interval
138
138
  @prev_time = @curr_time
139
139
  @stats.set(:pod_cache_size, @cache.count)
140
- @stats.set(:namespace_cache_size, @namespace_cache.count)
140
+ @stats.set(:namespace_cache_size, @namespace_cache.count) if @namespace_cache
141
141
  log.info(@stats)
142
142
  end
143
143
 
@@ -34,6 +34,22 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
34
34
  Test::FilterTestDriver.new(KubernetesMetadataFilter, 'var.log.containers.fabric8-console-controller-98rqc_default_fabric8-console-container-49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459.log').configure(conf, true)
35
35
  end
36
36
 
37
+ sub_test_case 'dump_stats' do
38
+
39
+ test 'dump stats with indclude_namespace_metadata' do
40
+ VCR.use_cassette('kubernetes_docker_metadata') do
41
+ d = create_driver('
42
+ kubernetes_url https://localhost:8443
43
+ watch false
44
+ cache_size 1
45
+ include_namespace_metadata false
46
+ stats_interval 0
47
+ ')
48
+ d.instance.dump_stats
49
+ end
50
+ end
51
+
52
+ end
37
53
  sub_test_case 'configure' do
38
54
  test 'check default' do
39
55
  d = create_driver
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-kubernetes_metadata_filter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.31.0
4
+ version: 0.32.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jimmi Dyson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-08 00:00:00.000000000 Z
11
+ date: 2017-11-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd