| 1 |  |  | #!/usr/bin/env python | 
            
                                                                                                            
                            
            
                                    
            
            
                | 2 |  |  | from profilehooks import profile | 
            
                                                                                                            
                            
            
                                    
            
            
                | 3 |  |  | from kafka_influxdb.encoder import collectd_json_encoder | 
            
                                                                                                            
                            
            
                                    
            
            
                | 4 |  |  |  | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 5 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 6 |  |  | class ProfileCollectdJsonEncoder: | 
            
                                                                        
                            
            
                                    
            
            
                | 7 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 8 |  |  |     def __init__(self, num_messages=10000): | 
            
                                                                        
                            
            
                                    
            
            
                | 9 |  |  |         self.encoder = collectd_json_encoder.Encoder() | 
            
                                                                        
                            
            
                                    
            
            
                | 10 |  |  |         self.sample_messages = b""" | 
            
                                                                        
                            
            
                                    
            
            
                | 11 |  |  |             [{"values":[0.6],"dstypes":["gauge"],"dsnames":["value"],"time":1444745144.824,"interval":10.000,"host":"xx.example.internal","plugin":"cpu","plugin_instance":"1","type":"percent","type_instance":"system"}] | 
            
                                                                        
                            
            
                                    
            
            
                | 12 |  |  |             [{"values":[0.7],"dstypes":["gauge"],"dsnames":["value"],"time":1444745144.824,"interval":10.000,"host":"example.com","plugin":"cpu","plugin_instance":"1","type":"percent","type_instance":"user"}] | 
            
                                                                        
                            
            
                                    
            
            
                | 13 |  |  |             [{"values":[37.7],"dstypes":["gauge"],"dsnames":["value"],"time":1444745144.824,"interval":10.000,"host":"myhost","plugin":"cpu","plugin_instance":"0","type":"percent","type_instance":"nice"}] | 
            
                                                                        
                            
            
                                    
            
            
                | 14 |  |  |             [{"values":[0],"dstypes":["gauge"],"dsnames":["value"],"time":1444745145.824,"interval":10.000,"host":"myhost","plugin":"cpu","plugin_instance":"0","type":"percent","type_instance":"interrupt"}] | 
            
                                                                        
                            
            
                                    
            
            
                | 15 |  |  |             [{"values":[1.1],"dstypes":["gauge"],"dsnames":["value"],"time":1444745136.182,"interval":10.000,"host":"myhost","plugin":"memory","plugin_instance":"","type":"percent","type_instance":"slab_recl"}] | 
            
                                                                        
                            
            
                                    
            
            
                | 16 |  |  |             """ | 
            
                                                                        
                            
            
                                    
            
            
                | 17 |  |  |         self.messages = b'\n'.join(num_messages * [self.sample_messages]) | 
            
                                                                        
                            
            
                                    
            
            
                | 18 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 19 |  |  |     @profile | 
            
                                                                        
                            
            
                                    
            
            
                | 20 |  |  |     def profile_messages(self): | 
            
                                                                        
                            
            
                                    
            
            
                | 21 |  |  |         self.encoder.encode(self.messages) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 22 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 23 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 24 |  |  | if __name__ == '__main__': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 25 |  |  |     profiler = ProfileCollectdJsonEncoder() | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 26 |  |  |     profiler.profile_messages() | 
            
                                                        
            
                                    
            
            
                | 27 |  |  |  |