def __attrs_post_init__(self): if self.max_retry_delay is None: self.max_retry_delay = self.timeout * 3 self._retry_upload = tenacity.Retrying( # Retry after 1s, 2s, 4s, 8s with some randomness wait=tenacity.wait_random_exponential(multiplier=0.5), stop=tenacity.stop_after_delay(self.max_retry_delay), retry_error_cls=UploadFailed, retry=tenacity.retry_if_exception_type( (http_client.HTTPException, OSError, IOError)), ) tags = { k: six.ensure_binary(v) for k, v in itertools.chain( parse_tags_str(os.environ.get("DD_TAGS")).items(), parse_tags_str(os.environ.get("DD_PROFILING_TAGS")).items(), ) } tags.update({k: six.ensure_binary(v) for k, v in self.tags.items()}) tags.update({ "host": HOSTNAME.encode("utf-8"), "language": b"python", "runtime": PYTHON_IMPLEMENTATION, "runtime_version": PYTHON_VERSION, "profiler_version": ddtrace.__version__.encode("ascii"), }) if self.version: tags["version"] = self.version.encode("utf-8") if self.env: tags["env"] = self.env.encode("utf-8") self.tags = tags
def _get_tags(self, service): tags = { "service": service.encode("utf-8"), "runtime-id": runtime.get_runtime_id().encode("ascii"), } user_tags = parse_tags_str(os.environ.get("DD_TAGS", {})) user_tags.update( parse_tags_str(os.environ.get("DD_PROFILING_TAGS", {}))) tags.update({k: six.ensure_binary(v) for k, v in user_tags.items()}) tags.update({k: six.ensure_binary(v) for k, v in self.tags.items()}) if self.version: tags["version"] = self.version.encode("utf-8") if self.env: tags["env"] = self.env.encode("utf-8") return tags
def _get_tags(self, service): tags = { "service": service.encode("utf-8"), "host": HOSTNAME.encode("utf-8"), "runtime-id": runtime.get_runtime_id().encode("ascii"), "language": b"python", "runtime": PYTHON_IMPLEMENTATION, "runtime_version": PYTHON_VERSION, "profiler_version": ddtrace.__version__.encode("utf-8"), } if self.version: tags["version"] = self.version.encode("utf-8") if self.env: tags["env"] = self.env.encode("utf-8") user_tags = parse_tags_str(os.environ.get("DD_TAGS", {})) user_tags.update(parse_tags_str(os.environ.get("DD_PROFILING_TAGS", {}))) tags.update({k: six.ensure_binary(v) for k, v in user_tags.items()}) return tags