From bd442b6e8694613059c6ff7db2db2aa3e73534b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Rami=CC=81rez=20Mondrago=CC=81n?= Date: Sat, 1 Apr 2023 22:06:05 -0600 Subject: [PATCH] fix: Conform metric field `type` to Singer spec According to the [Singer Spec](https://github.com/singer-io/getting-started/blob/master/docs/SYNC_MODE.md#metric-messages), the correct field name is `type` and not `metric_type`. --- singer_sdk/metrics.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/singer_sdk/metrics.py b/singer_sdk/metrics.py index 1c69a3681..da6465954 100644 --- a/singer_sdk/metrics.py +++ b/singer_sdk/metrics.py @@ -8,7 +8,7 @@ import logging import logging.config import os -from dataclasses import asdict, dataclass, field +from dataclasses import dataclass, field from pathlib import Path from time import time from typing import TYPE_CHECKING, Any, Generic, Mapping, TypeVar @@ -79,7 +79,15 @@ def to_json(self) -> str: Returns: A JSON object. """ - return json.dumps(asdict(self), default=str) + return json.dumps( + { + "type": self.metric_type, + "metric": self.metric.value, + "value": self.value, + "tags": self.tags, + }, + default=str, + ) def log(logger: logging.Logger, point: Point) -> None: