fluent-plugin-cloudwatch-logs 0.2.6 → 0.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,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: d4238d9fd741cabef203f35c414b70d13955314f
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: d8f44326e2452d24b3f33c0cf2950a09187ec664
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 4cfa93793297b5cd39addae8ec7b6b18c641cebe06a54392558811a292086c78f22edd4e9ca5676750b9d290dc671b3a087723570571579b344f410518a0dd5d
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 3e7ab5bd33f70a58e086772bb92c39106ecec63471799559f6e12211f4e9536b5543c8d1b4afa987bc93f4f7ebe230eea4e17b0a3d12e2840f21ca268bd046a4
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -146,6 +146,10 @@ Or, If you do not want to use IAM roll or ENV(this is just like writing to confi 
     | 
|
| 
       146 
146 
     | 
    
         
             
            $ rake aws_key_id=YOUR_ACCESS_KEY aws_sec_key=YOUR_SECRET_KEY region=us-east-1 test
         
     | 
| 
       147 
147 
     | 
    
         
             
            ```
         
     | 
| 
       148 
148 
     | 
    
         | 
| 
      
 149 
     | 
    
         
            +
            ## Caution
         
     | 
| 
      
 150 
     | 
    
         
            +
             
     | 
| 
      
 151 
     | 
    
         
            +
            - If an event message exceeds API limit (256KB), the event will be discarded.
         
     | 
| 
      
 152 
     | 
    
         
            +
             
     | 
| 
       149 
153 
     | 
    
         
             
            ## TODO
         
     | 
| 
       150 
154 
     | 
    
         | 
| 
       151 
155 
     | 
    
         
             
            * out_cloudwatch_logs
         
     | 
| 
         @@ -28,6 +28,7 @@ module Fluent 
     | 
|
| 
       28 
28 
     | 
    
         
             
                config_param :put_log_events_disable_retry_limit, :bool, default: false
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
                MAX_EVENTS_SIZE = 1_048_576
         
     | 
| 
      
 31 
     | 
    
         
            +
                MAX_EVENT_SIZE = 256 * 1024
         
     | 
| 
       31 
32 
     | 
    
         
             
                EVENT_HEADER_SIZE = 26
         
     | 
| 
       32 
33 
     | 
    
         | 
| 
       33 
34 
     | 
    
         
             
                unless method_defined?(:log)
         
     | 
| 
         @@ -164,8 +165,13 @@ module Fluent 
     | 
|
| 
       164 
165 
     | 
    
         
             
                  # http://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html
         
     | 
| 
       165 
166 
     | 
    
         
             
                  total_bytesize = 0
         
     | 
| 
       166 
167 
     | 
    
         
             
                  while event = events.shift
         
     | 
| 
       167 
     | 
    
         
            -
                    new_chunk = chunk + [event]
         
     | 
| 
       168 
168 
     | 
    
         
             
                    event_bytesize = event[:message].bytesize + EVENT_HEADER_SIZE
         
     | 
| 
      
 169 
     | 
    
         
            +
                    if MAX_EVENT_SIZE < event_bytesize
         
     | 
| 
      
 170 
     | 
    
         
            +
                      log.warn "Log event is discarded because it is too large: #{event_bytesize} bytes exceeds limit of #{MAX_EVENT_SIZE}"
         
     | 
| 
      
 171 
     | 
    
         
            +
                      break
         
     | 
| 
      
 172 
     | 
    
         
            +
                    end
         
     | 
| 
      
 173 
     | 
    
         
            +
             
     | 
| 
      
 174 
     | 
    
         
            +
                    new_chunk = chunk + [event]
         
     | 
| 
       169 
175 
     | 
    
         | 
| 
       170 
176 
     | 
    
         
             
                    chunk_span_too_big = new_chunk.size > 1 && new_chunk[-1][:timestamp] - new_chunk[0][:timestamp] >= 1000 * 60 * 60 * 24
         
     | 
| 
       171 
177 
     | 
    
         
             
                    chunk_too_big = total_bytesize + event_bytesize > MAX_EVENTS_SIZE
         
     | 
| 
         @@ -334,6 +334,19 @@ put_log_events_retry_limit 1 
     | 
|
| 
       334 
334 
     | 
    
         
             
                assert_match(/failed to PutLogEvents and throwing away/, d.instance.log.logs[5])
         
     | 
| 
       335 
335 
     | 
    
         
             
              end
         
     | 
| 
       336 
336 
     | 
    
         | 
| 
      
 337 
     | 
    
         
            +
              def test_too_large_event
         
     | 
| 
      
 338 
     | 
    
         
            +
                time = Time.now
         
     | 
| 
      
 339 
     | 
    
         
            +
                d = create_driver(<<-EOC)
         
     | 
| 
      
 340 
     | 
    
         
            +
            #{default_config}
         
     | 
| 
      
 341 
     | 
    
         
            +
            log_group_name #{log_group_name}
         
     | 
| 
      
 342 
     | 
    
         
            +
            log_stream_name #{log_stream_name}
         
     | 
| 
      
 343 
     | 
    
         
            +
                EOC
         
     | 
| 
      
 344 
     | 
    
         
            +
                d.emit({'message' => '*' * 256 * 1024}, time.to_i)
         
     | 
| 
      
 345 
     | 
    
         
            +
                d.run
         
     | 
| 
      
 346 
     | 
    
         
            +
             
     | 
| 
      
 347 
     | 
    
         
            +
                assert_match(/Log event is discarded because it is too large: 262184 bytes exceeds limit of 262144$/, d.instance.log.logs[0])
         
     | 
| 
      
 348 
     | 
    
         
            +
              end
         
     | 
| 
      
 349 
     | 
    
         
            +
             
     | 
| 
       337 
350 
     | 
    
         
             
              private
         
     | 
| 
       338 
351 
     | 
    
         
             
              def default_config
         
     | 
| 
       339 
352 
     | 
    
         
             
                <<-EOC
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: fluent-plugin-cloudwatch-logs
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.3.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Ryota Arai
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2016- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2016-06-07 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: fluentd
         
     |