fluent-plugin-cloud-feeds 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzlhN2I4ZmIzMGJjZWZjYzk4NTBiODBlY2UxZGRkODg0NTVkZGE5Mg==
4
+ YzI2Njg3NGJhNzJkOWQwZjdjOWNiZjIyMWNiYjUzMTdkNmQyN2Q2OA==
5
5
  data.tar.gz: !binary |-
6
- MjA0MDVkNDVjYTk0NzFlNThmN2FjOTM0OWM0YmJhNTM0YTg5NTY2MQ==
6
+ ZTc0MWM2NDQ0NWRjMGU5YTE3Yzg2ZDhiM2M1NTZkMzRkMzI3NDMxMQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YjY0NTA5MGRmZTA4NTlkYTIzOWRiYmIxMzc5ZTQyYjFmOTExNjczM2NmYzkw
10
- YTgxNzU1Y2EyM2NkZDk3ZGRhNmQ4Nzc4ZGEwYmU4MjhiOGQ0M2Y1Yjk4MWQx
11
- NTRkZGQ5NzRjZTY5OGFjZjk3YjBkMzM0NDA4OWE2ZjNmZjY1ODc=
9
+ MWE1NmUxNWFhNDFiY2FiZTllZTM5OTEwNTBmODhiNGQ4MWJlZTFjOTgxYWQ1
10
+ NmZkNzY2ZTkwYWQxZWViMWM5OTY3N2JiNTAyOTc3OGVkY2RjOTE5OWE2NTU5
11
+ ZTM5MjNmZjcwZTM2NDk2NTE0NTA5M2NmMjc3ZDQxN2ZlZDlhYWI=
12
12
  data.tar.gz: !binary |-
13
- ZGFhNDNjZDA0NGUzZWI4OTEwYjNhYzU4ZWZlNDFjZTgzODEzMmZmZTUxZmMz
14
- M2FmZWRmZmVkZjc2YjIxMDVjMjgyZGUxOTU4NzU0NTBlMGNmMmQ0NDMxYjUx
15
- NDE1MWVlZjE3YzM4MTI3OGM5MmY1ZGRlMjVmY2NiODY3NjNkMWE=
13
+ MjFiOWZmZmY4YjAyODRkMzVmYWJlMzNmNmVmZDY3ZDA5Mzk1MDZjNmFkNjc2
14
+ MmE0NjY3M2UxNzllMjhjZmZjZWE4OTE3ZTkwY2QwZjgxMmUwZTdlZTcxNDI4
15
+ MzMwYjhkNTE1MTRiNDAxZWFlNzAyOGRmZWExNjQ3NThjZDU3YjY=
data/README.md CHANGED
@@ -1,2 +1,84 @@
1
- # fluentd-feeds-output
2
- Output for fluentd to an authenticated CloudFeeds endpoint
1
+ # Fluentd output plugin to Rackspace cloud feeds
2
+
3
+ This plugin mirrors functionality in the [cf-flume-sink](https://github.com/rackerlabs/cf-flume-sink/tree/master/cf-sink)
4
+ except for [fluentd](www.fluentd.org) instead of flume.
5
+
6
+ ## Configuration
7
+
8
+ It is highly recommended to use this plugin with the [bufferize plugin](https://github.com/sabottenda/fluent-plugin-bufferize).
9
+ This plugin has been designed to fail in a way that allows the bufferize plugin to properly retry.
10
+
11
+ ### Fluentd configuration for this plugin
12
+
13
+ ```
14
+ type rackspace_cloud_feeds
15
+ identity_endpoint http://identity.com/post/for/token
16
+ identity_username username
17
+ identity_password teh_password
18
+ feeds_endpoint http://feed.com/endpoint/of/feed
19
+ ```
20
+
21
+ * **type** Needs to be rackspace_cloud_feeds for fluentd to recognize the plugin
22
+ * **identity_endpoint** The url to authenticate with identity
23
+ * **identity_username** The username to use during posting to get a token
24
+ * **identity_password** The password component of getting a token
25
+ * **feeds_endpoint** The endpoint of the authenticated feed to post events to
26
+
27
+ ### log4j2 logging configuration
28
+
29
+ This example configuration assumes that you're using the Repose [HERP filter](https://repose.atlassian.net/wiki/display/REPOSE/Highly+Efficient+Record+Processor+%28HERP%29+filter), as this is the primary purpose for building this output plugin.
30
+
31
+
32
+ ```xml
33
+ <?xml version="1.0" encoding="UTF-8"?>
34
+ <Configuration packages="org.openrepose.commons.utils.xslt">
35
+ <Appenders>
36
+ <RollingFile name="UserAccessEventLog" fileName="/var/log/repose-uae.log"
37
+ filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
38
+ <PatternLayout pattern="%m%n"/>
39
+ <Policies>
40
+ <TimeBasedTriggeringPolicy />
41
+ <SizeBasedTriggeringPolicy size="250 MB"/>
42
+ </Policies>
43
+ </RollingFile>
44
+ </Appenders>
45
+ <Loggers>
46
+ <Logger name="highly-efficient-record-processor-post-Logger" level="trace">
47
+ <AppenderRef ref="UserAccessEventLog"/>
48
+ </Logger>
49
+ </Loggers>
50
+ </Configuration>
51
+ ```
52
+
53
+ This will ensure that the output log lines from Repose are one JSON per line so that the fluentd can consume them.
54
+
55
+ ### Naieve sample configuration for fluentd
56
+
57
+ This is a very naieve configuration for fluentd that can be extended upon to configure fluentd to pull in
58
+ entries from the repose log and send them out the cloud-feeds fluent plugin through the bufferize plugin.
59
+
60
+ ```
61
+ <source>
62
+ type tail
63
+ path /var/log/repose-uae.log
64
+ pos_file /var/log/repose-uae.log
65
+ format none
66
+ tag repose
67
+ </source>
68
+
69
+ <match repose*>
70
+ type bufferize
71
+ buffer_type file
72
+ buffer_path /tmp/repose.*.buffer
73
+ <config>
74
+ type rackspace_cloud_feeds
75
+ identity_endpoint http://localhost:8080/tokens
76
+ identity_username lolol
77
+ identity_password butts
78
+ feeds_endpoint http://localhost:8081/feed
79
+ </config>
80
+ </match>
81
+ ```
82
+
83
+ There are many options with the bufferize plugin, be sure to read the documentation for bufferize and
84
+ fluentd to ensure that the stuff is set up properly for your environment.
@@ -2,7 +2,7 @@ $:.push File.expand_path("../lib", __FILE__)
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "fluent-plugin-cloud-feeds"
5
- s.version = "1.2.0"
5
+ s.version = "1.3.0"
6
6
  s.authors = ["David Kowis", "Tyler Royal"]
7
7
  s.email= ["david.kowis@rackspace.com", "tyler.royal@rackspace.com"]
8
8
  s.homepage = "https://github.com/rackerlabs/fluent-plugin-cloud-feeds"
@@ -27,4 +27,4 @@ Gem::Specification.new do |s|
27
27
  s.add_development_dependency('rspec', '3.2.0')
28
28
  s.add_development_dependency('webmock', '1.21.0')
29
29
  s.add_development_dependency('simplecov', '0.10.0')
30
- end
30
+ end
@@ -99,7 +99,7 @@ class Fluent::RackspaceCloudFeedsOutput < Fluent::Output
99
99
  <title type="text">User Access Event</title>
100
100
  <author><name>Repose</name></author>
101
101
  <updated>#{now}</updated>
102
- <content type="text">#{content}</content>
102
+ <content type="application/xml">#{content}</content>
103
103
  </entry>
104
104
  EOF
105
105
  end
@@ -59,6 +59,7 @@ EOF
59
59
  expect(REXML::XPath.first(doc, "/entry/author/name").text).to eq("Repose")
60
60
  expect(REXML::XPath.first(doc, "/entry/updated").text).to match(/\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d.\d\d\dZ/)
61
61
  expect(REXML::XPath.first(doc, "/entry/content").text).to eq(content)
62
+ expect(REXML::XPath.first(doc, "/entry/content/@type").value).to eq("application/xml")
62
63
  end
63
64
 
64
65
  def print_logs
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-cloud-feeds
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Kowis
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-04-21 00:00:00.000000000 Z
12
+ date: 2015-05-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: net-http-persistent