def _get_exporter_names() -> Sequence[str]: exporter = Configuration().EXPORTER or EXPORTER_OTLP if exporter.lower().strip() == "none": return [] names = [] for exp in exporter.split(","): name = exp.strip() if name == EXPORTER_OTLP: names.append(EXPORTER_OTLP_SPAN) names.append(EXPORTER_OTLP_METRIC) else: names.append(name) return names
def _load_instrumentors(): package_to_exclude = Configuration().get("DISABLED_INSTRUMENTATIONS", []) if isinstance(package_to_exclude, str): package_to_exclude = package_to_exclude.split(",") # to handle users entering "requests , flask" or "requests, flask" with spaces package_to_exclude = [x.strip() for x in package_to_exclude] for entry_point in iter_entry_points("opentelemetry_instrumentor"): try: if entry_point.name in package_to_exclude: logger.debug("Instrumentation skipped for library %s", entry_point.name) continue entry_point.load()().instrument() # type: ignore logger.debug("Instrumented %s", entry_point.name) except Exception as exc: # pylint: disable=broad-except logger.exception("Instrumenting of %s failed", entry_point.name) raise exc