metrics.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from prometheus_client import Counter, Histogram, Summary
  2. metrics = {}
  3. def get(name):
  4. return metrics.get(name)
  5. def set_counter(name, *args, **kwargs):
  6. metrics[name] = Counter(name, *args, **kwargs)
  7. def set_histogram(name, *args, **kwargs):
  8. metrics[name] = Histogram(name, *args, **kwargs)
  9. def set_summary(name, *args, **kwargs):
  10. metrics[name] = Summary(name, *args, **kwargs)
  11. # models.py metrics
  12. set_counter('desecapi_captcha_content_created', 'number of times captcha content created', ['kind'])
  13. set_counter('desecapi_autodelegation_created', 'number of autodelegations added')
  14. set_counter('desecapi_autodelegation_deleted', 'number of autodelegations deleted')
  15. set_histogram('desecapi_messages_queued', 'number of emails queued', ['reason', 'user', 'lane'],
  16. buckets=[0, 1, float("inf")])
  17. # views.py metrics
  18. set_counter('desecapi_dynDNS12_domain_not_found', 'number of times dynDNS12 domain is not found')
  19. # crypto.py metrics
  20. set_counter('desecapi_key_encryption_success', 'number of times key encryption was successful', ['context'])
  21. set_counter('desecapi_key_decryption_success', 'number of times key decryption was successful', ['context'])
  22. # exception_handlers.py metrics
  23. set_counter('desecapi_database_unavailable', 'number of times database was unavailable')
  24. # pdns.py metrics
  25. set_counter('desecapi_pdns_request_success', 'number of times pdns request was successful', ['method', 'status'])
  26. set_counter('desecapi_pdns_keys_fetched', 'number of times pdns keys were fetched')
  27. # pdns_change_tracker.py metrics
  28. set_counter('desecapi_pdns_catalog_updated', 'number of times pdns catalog was updated successfully')
  29. # throttling.py metrics
  30. set_counter('desecapi_throttle_failure', 'number of requests throttled', ['method', 'scope', 'user'])
  31. # serializers.py metrics
  32. set_counter('desecapi_rrset_list_serializer', 'number of times RRsetListSerializer was initialized')