kafka-metrics-producer-topkrabbensteam

Library that can be used to produce metrics to Kafka using Apache Avro schemas


License
Apache-2.0
Install
pip install kafka-metrics-producer-topkrabbensteam==1.0

Documentation

kafka-metrics-producer-topkrabbensteam

Kafka-metrics-producer-topkrabbensteam.
Library that can be used to produce metrics to Kafka using Apache Avro schemas
Installation:
pip install kafka-metrics-producer-topkrabbensteam
Usage:
from metricsFacade.filledFieldsMetric import FilledFieldsMetric
from metricsFacade.metricsProducer import MetricsProducer
from metricsFacade.advertCrawlTimeSecondsMetric import AdvertCrawlTimeSecondsMetric
from metricsFacade.errorCounterMetric import ErrorCounterMetric
from metricsFacade.errorCategory import ErrorCategory
from metricsFacade.moduleName import ModuleName
from metricsFacade.labelsList import LabelsList

#Metrics

topicName = "metrics_data"

metricsProducer = MetricsProducer(topicName, JsonKafkaConfig("config.json"))

filledFieldMetric = FilledFieldsMetric(ModuleName.Parser.name)
advertCrawlTime = AdvertCrawlTimeSecondsMetric(ModuleName.Crawler.name)
errorMetric = ErrorCounterMetric(ModuleName.Crawler.name)

while True:
    time.sleep(1)
    metricValue = (random.random()*100)   

    flag = (metricValue > (random.random()*100))
    
    siteLabelValue = "cian.ru" if flag else "drom.ru"
    errorCategoryLabel = ErrorCategory.ServerError.name if flag else ErrorCategory.NotFound.name

    
    filledFieldMetric.formMetric({"field":"1","data":"2","count":None, "zzz":1,"mmm":2.0, "f":True},{LabelsList.sourceName:siteLabelValue})
    advertCrawlTime.formMetric(metricValue,{LabelsList.sourceName:siteLabelValue})
    errorMetric.formMetric(errorCategoryLabel,{LabelsList.sourceName:siteLabelValue})
        
    print ('Producing metric: %(type)s %(site)s %(value)f' 
           % {"site": siteLabelValue,"value":metricValue,"type":filledFieldMetric.getMetric().prometheus_metric_data.metric_type})
        
    metricsProducer.AddMetric(filledFieldMetric)    
    metricsProducer.AddMetric(advertCrawlTime)
    metricsProducer.AddMetric(errorMetric)
    
    metricsProducer.ProduceMetrics()    

=========================

This package is dedicated to the bright future.

=========================