Exemplo n.º 1
0
    def _metrics_flush(namespace: str = METRICS_NAMESPACE):
        """
        Flushes metrics to an AWS Reporter.
        """
        try:
            reporter = AWSCloudWatchReporter(namespace)
            datums = []
            datums.extend(
                [reporter.get_counter_datum(k, v) for k, v in counts.items()])

            datums.extend([
                reporter.get_multi_value_datums(k, v,
                                                AWSCloudWatchUnit.Milliseconds)
                for k, v in timers.items()
            ])
            reporter.report(datums)
        except Exception as e:
            logger.exception("Couldn't report metrics to cloudwatch")
Exemplo n.º 2
0
    def _metrics_flush(namespace: str = METRICS_NAMESPACE):
        """
        Flushes metrics to an AWS Reporter.
        Warning not flush will not go through if it would hit
        PutMetricData's Limit See AWSCloudWatchReporter.PUT_METRIC_DATA_VALUES_LIMIT
        """
        try:
            reporter = AWSCloudWatchReporter(namespace)
            datums = []
            datums.extend(
                [reporter.get_counter_datum(k, v) for k, v in counts.items()])

            datums.extend([
                reporter.get_multi_value_datums(k, v,
                                                AWSCloudWatchUnit.Milliseconds)
                for k, v in timers.items()
            ])
            reporter.report(datums)
        except Exception as e:
            logger.exception("Couldn't report metrics to cloudwatch")
Exemplo n.º 3
0
    def _metrics_flush(namespace: str = METRICS_NAMESPACE):
        """
        Flushes metrics to an AWS Reporter.
        Warning not flush will not go through if it would hit
        PutMetricData's Limit See AWSCloudWatchReporter.PUT_METRIC_DATA_VALUES_LIMIT
        """
        try:
            reporter = AWSCloudWatchReporter(namespace)
            datums = []
            datums.extend(
                [reporter.get_counter_datum(k, v) for k, v in counts.items()])

            for duration_name, value_count_mapping in timers.items():
                # if value_count_mapping is empty or > PUT_METRIC_DATA_VALUES_LIMIT,
                # method returns None. filter those out otherwise report will throw an error.
                if datum := reporter.get_multi_value_datums(
                        name=duration_name,
                        value_count_mapping=value_count_mapping,
                        unit=AWSCloudWatchUnit.Milliseconds,
                ):
                    datums.append(datum)

            reporter.report(datums)