backend/code_coverage_backend/datadog.py (23 lines of code) (raw):
# -*- coding: utf-8 -*-
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import logging
import datadog
from code_coverage_backend import config
from code_coverage_backend import taskcluster
logger = logging.getLogger(__name__)
__stats = None
def get_stats():
"""
Configure a shared ThreadStats instance for datadog
"""
global __stats
if __stats is not None:
return __stats
app_channel = taskcluster.secrets["APP_CHANNEL"]
if taskcluster.secrets.get("DATADOG_API_KEY"):
datadog.initialize(
api_key=taskcluster.secrets["DATADOG_API_KEY"],
host_name=f"coverage.{app_channel}.moz.tools",
)
else:
logger.info("No datadog credentials")
# Must be instantiated after initialize
# https://datadogpy.readthedocs.io/en/latest/#datadog-threadstats-module
__stats = datadog.ThreadStats(
constant_tags=[config.PROJECT_NAME, f"channel:{app_channel}"]
)
__stats.start(flush_in_thread=True)
return __stats