launchdarkly-observability 0.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,120 @@
1
+ Metadata-Version: 2.3
2
+ Name: launchdarkly-observability
3
+ Version: 0.0.0
4
+ Summary: LaunchDarkly Observability for Python
5
+ License: Apache-2.0
6
+ Author: LaunchDarkly Authors
7
+ Author-email: dev@launchdarkly.com
8
+ Requires-Python: >=3.9,<4
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: Apache Software License
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Topic :: Software Development
19
+ Classifier: Topic :: Software Development :: Libraries
20
+ Provides-Extra: dev
21
+ Requires-Dist: ariadne-codegen (>=0.14.0,<0.15.0)
22
+ Requires-Dist: azure-functions (>=1) ; extra == "dev"
23
+ Requires-Dist: black (>=24) ; extra == "dev"
24
+ Requires-Dist: blinker (>=1) ; extra == "dev"
25
+ Requires-Dist: django (>=4) ; extra == "dev"
26
+ Requires-Dist: fastapi (>=0) ; extra == "dev"
27
+ Requires-Dist: flask (>=3) ; extra == "dev"
28
+ Requires-Dist: functions-framework (>=3) ; extra == "dev"
29
+ Requires-Dist: loguru (>=0) ; extra == "dev"
30
+ Requires-Dist: opentelemetry-api (==1.34.1)
31
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc (==1.34.1)
32
+ Requires-Dist: opentelemetry-instrumentation (==0.55b1)
33
+ Requires-Dist: opentelemetry-instrumentation-aiohttp-client (==0.55b1)
34
+ Requires-Dist: opentelemetry-instrumentation-aiohttp-server (==0.55b1)
35
+ Requires-Dist: opentelemetry-instrumentation-anthropic (==0.40.14)
36
+ Requires-Dist: opentelemetry-instrumentation-bedrock (==0.40.14)
37
+ Requires-Dist: opentelemetry-instrumentation-boto (==0.55b1)
38
+ Requires-Dist: opentelemetry-instrumentation-boto3sqs (==0.55b1)
39
+ Requires-Dist: opentelemetry-instrumentation-celery (==0.55b1)
40
+ Requires-Dist: opentelemetry-instrumentation-chromadb (==0.40.14)
41
+ Requires-Dist: opentelemetry-instrumentation-cohere (==0.40.14)
42
+ Requires-Dist: opentelemetry-instrumentation-django (==0.55b1)
43
+ Requires-Dist: opentelemetry-instrumentation-fastapi (==0.55b1)
44
+ Requires-Dist: opentelemetry-instrumentation-flask (==0.55b1)
45
+ Requires-Dist: opentelemetry-instrumentation-grpc (==0.55b1)
46
+ Requires-Dist: opentelemetry-instrumentation-haystack (==0.40.14)
47
+ Requires-Dist: opentelemetry-instrumentation-httpx (==0.55b1)
48
+ Requires-Dist: opentelemetry-instrumentation-jinja2 (==0.55b1)
49
+ Requires-Dist: opentelemetry-instrumentation-langchain (==0.40.14)
50
+ Requires-Dist: opentelemetry-instrumentation-llamaindex (==0.40.14)
51
+ Requires-Dist: opentelemetry-instrumentation-logging (==0.55b1)
52
+ Requires-Dist: opentelemetry-instrumentation-openai (==0.40.14)
53
+ Requires-Dist: opentelemetry-instrumentation-pinecone (==0.40.14)
54
+ Requires-Dist: opentelemetry-instrumentation-psycopg (==0.55b1)
55
+ Requires-Dist: opentelemetry-instrumentation-psycopg2 (==0.55b1)
56
+ Requires-Dist: opentelemetry-instrumentation-qdrant (==0.40.14)
57
+ Requires-Dist: opentelemetry-instrumentation-redis (==0.55b1)
58
+ Requires-Dist: opentelemetry-instrumentation-replicate (==0.40.14)
59
+ Requires-Dist: opentelemetry-instrumentation-requests (==0.55b1)
60
+ Requires-Dist: opentelemetry-instrumentation-sqlalchemy (==0.55b1)
61
+ Requires-Dist: opentelemetry-instrumentation-sqlite3 (==0.55b1)
62
+ Requires-Dist: opentelemetry-instrumentation-starlette (==0.55b1)
63
+ Requires-Dist: opentelemetry-instrumentation-system-metrics (==0.55b1)
64
+ Requires-Dist: opentelemetry-instrumentation-transformers (==0.40.14)
65
+ Requires-Dist: opentelemetry-instrumentation-urllib (==0.55b1)
66
+ Requires-Dist: opentelemetry-instrumentation-urllib3 (==0.55b1)
67
+ Requires-Dist: opentelemetry-instrumentation-vertexai (==0.40.14)
68
+ Requires-Dist: opentelemetry-instrumentation-watsonx (==0.40.14)
69
+ Requires-Dist: opentelemetry-instrumentation-weaviate (==0.40.14)
70
+ Requires-Dist: opentelemetry-instrumentation-wsgi (==0.55b1)
71
+ Requires-Dist: opentelemetry-proto (==1.34.1)
72
+ Requires-Dist: opentelemetry-sdk (==1.34.1)
73
+ Requires-Dist: orjson (==3.9.15) ; extra == "dev"
74
+ Requires-Dist: pytest (>=8) ; extra == "dev"
75
+ Requires-Dist: pytest-asyncio (>=0) ; extra == "dev"
76
+ Requires-Dist: pytest-cov (>=5) ; extra == "dev"
77
+ Requires-Dist: pytest-mock (>=3) ; extra == "dev"
78
+ Requires-Dist: requests (>=2.31.0)
79
+ Requires-Dist: urllib3 (>=2.2.1)
80
+ Description-Content-Type: text/markdown
81
+
82
+
83
+ LaunchDarkly Observability SDK for Python
84
+ ===========================
85
+
86
+ [![Actions Status][o11y-sdk-ci-badge]][o11y-sdk-ci]
87
+ [![readthedocs](https://readthedocs.org/projects/launchdarkly-python-sdk/badge/)](https://launchdarkly-observability.readthedocs.io/en/latest/)
88
+
89
+ [![PyPI](https://img.shields.io/pypi/v/launchdarkly-server-sdk.svg?maxAge=2592000)](https://pypi.python.org/pypi/launchdarkly-server-sdk)
90
+ [![PyPI](https://img.shields.io/pypi/pyversions/launchdarkly-server-sdk.svg)](https://pypi.python.org/pypi/launchdarkly-server-sdk)
91
+
92
+ # Early Access Preview️
93
+
94
+ > [!CAUTION]
95
+ > This library is in Early Access Preview and APIs are subject to change until a 1.x version is released.
96
+
97
+ LaunchDarkly overview
98
+ -------------------------
99
+ [LaunchDarkly](https://www.launchdarkly.com) is a feature management platform that serves trillions of feature flags daily to help teams build better software, faster. [Get started](https://docs.launchdarkly.com/home/getting-started) using LaunchDarkly today!
100
+
101
+ [![Twitter Follow](https://img.shields.io/twitter/follow/launchdarkly.svg?style=social&label=Follow&maxAge=2592000)](https://twitter.com/intent/follow?screen_name=launchdarkly)
102
+
103
+ ## Contributing
104
+
105
+ We encourage pull requests and other contributions from the community. Check out our [contributing guidelines](CONTRIBUTING.md) for instructions on how to contribute to this SDK.
106
+
107
+ ## About LaunchDarkly
108
+
109
+ * LaunchDarkly is a continuous delivery platform that provides feature flags as a service and allows developers to iterate quickly and safely. We allow you to easily flag your features and manage them from the LaunchDarkly dashboard. With LaunchDarkly, you can:
110
+ * Roll out a new feature to a subset of your users (like a group of users who opt-in to a beta tester group), gathering feedback and bug reports from real-world use cases.
111
+ * Gradually roll out a feature to an increasing percentage of users, and track the effect that the feature has on key metrics (for instance, how likely is a user to complete a purchase if they have feature A versus feature B?).
112
+ * Turn off a feature that you realize is causing performance problems in production, without needing to re-deploy, or even restart the application with a changed configuration file.
113
+ * Grant access to certain features based on user attributes, like payment plan (eg: users on the ‘gold’ plan get access to more features than users in the ‘silver’ plan). Disable parts of your application to facilitate maintenance, without taking everything offline.
114
+ * LaunchDarkly provides feature flag SDKs for a wide variety of languages and technologies. Check out [our documentation](https://docs.launchdarkly.com/docs) for a complete list.
115
+ * Explore LaunchDarkly
116
+ * [launchdarkly.com](https://www.launchdarkly.com/ "LaunchDarkly Main Website") for more information
117
+ * [docs.launchdarkly.com](https://docs.launchdarkly.com/ "LaunchDarkly Documentation") for our documentation and SDK reference guides
118
+ * [apidocs.launchdarkly.com](https://apidocs.launchdarkly.com/ "LaunchDarkly API Documentation") for our API documentation
119
+ * [launchdarkly.com/blog](https://launchdarkly.com/blog/ "LaunchDarkly Blog Documentation") for the latest product updates
120
+
@@ -0,0 +1,38 @@
1
+
2
+ LaunchDarkly Observability SDK for Python
3
+ ===========================
4
+
5
+ [![Actions Status][o11y-sdk-ci-badge]][o11y-sdk-ci]
6
+ [![readthedocs](https://readthedocs.org/projects/launchdarkly-python-sdk/badge/)](https://launchdarkly-observability.readthedocs.io/en/latest/)
7
+
8
+ [![PyPI](https://img.shields.io/pypi/v/launchdarkly-server-sdk.svg?maxAge=2592000)](https://pypi.python.org/pypi/launchdarkly-server-sdk)
9
+ [![PyPI](https://img.shields.io/pypi/pyversions/launchdarkly-server-sdk.svg)](https://pypi.python.org/pypi/launchdarkly-server-sdk)
10
+
11
+ # Early Access Preview️
12
+
13
+ > [!CAUTION]
14
+ > This library is in Early Access Preview and APIs are subject to change until a 1.x version is released.
15
+
16
+ LaunchDarkly overview
17
+ -------------------------
18
+ [LaunchDarkly](https://www.launchdarkly.com) is a feature management platform that serves trillions of feature flags daily to help teams build better software, faster. [Get started](https://docs.launchdarkly.com/home/getting-started) using LaunchDarkly today!
19
+
20
+ [![Twitter Follow](https://img.shields.io/twitter/follow/launchdarkly.svg?style=social&label=Follow&maxAge=2592000)](https://twitter.com/intent/follow?screen_name=launchdarkly)
21
+
22
+ ## Contributing
23
+
24
+ We encourage pull requests and other contributions from the community. Check out our [contributing guidelines](CONTRIBUTING.md) for instructions on how to contribute to this SDK.
25
+
26
+ ## About LaunchDarkly
27
+
28
+ * LaunchDarkly is a continuous delivery platform that provides feature flags as a service and allows developers to iterate quickly and safely. We allow you to easily flag your features and manage them from the LaunchDarkly dashboard. With LaunchDarkly, you can:
29
+ * Roll out a new feature to a subset of your users (like a group of users who opt-in to a beta tester group), gathering feedback and bug reports from real-world use cases.
30
+ * Gradually roll out a feature to an increasing percentage of users, and track the effect that the feature has on key metrics (for instance, how likely is a user to complete a purchase if they have feature A versus feature B?).
31
+ * Turn off a feature that you realize is causing performance problems in production, without needing to re-deploy, or even restart the application with a changed configuration file.
32
+ * Grant access to certain features based on user attributes, like payment plan (eg: users on the ‘gold’ plan get access to more features than users in the ‘silver’ plan). Disable parts of your application to facilitate maintenance, without taking everything offline.
33
+ * LaunchDarkly provides feature flag SDKs for a wide variety of languages and technologies. Check out [our documentation](https://docs.launchdarkly.com/docs) for a complete list.
34
+ * Explore LaunchDarkly
35
+ * [launchdarkly.com](https://www.launchdarkly.com/ "LaunchDarkly Main Website") for more information
36
+ * [docs.launchdarkly.com](https://docs.launchdarkly.com/ "LaunchDarkly Documentation") for our documentation and SDK reference guides
37
+ * [apidocs.launchdarkly.com](https://apidocs.launchdarkly.com/ "LaunchDarkly API Documentation") for our API documentation
38
+ * [launchdarkly.com/blog](https://launchdarkly.com/blog/ "LaunchDarkly Blog Documentation") for the latest product updates
@@ -0,0 +1,4 @@
1
+ from typing import Optional
2
+
3
+ def init(project_id: str, config: Optional[ObservabilityConfig] = None):
4
+ pass
@@ -0,0 +1,64 @@
1
+ from dataclasses import dataclass
2
+ import logging
3
+ from typing import Optional
4
+
5
+
6
+ DEFAULT_OTLP_ENDPOINT = "https://otel.observability.app.launchdarkly.com:4317"
7
+ DEFAULT_INSTRUMENT_LOGGING = True
8
+ DEFAULT_LOG_LEVEL = logging.INFO
9
+ DEFAULT_SERVICE_NAME = ""
10
+ DEFAULT_SERVICE_VERSION = ""
11
+ DEFAULT_ENVIRONMENT = ""
12
+ DEFAULT_DISABLE_EXPORT_ERROR_LOGGING = False
13
+
14
+ @dataclass(kw_only=True)
15
+ class ObservabilityConfig:
16
+ otlp_endpoint: Optional[str] = None
17
+ """
18
+ Used to set a custom OTLP endpoint.
19
+
20
+ Alternatively, set the OTEL_EXPORTER_OTLP_ENDPOINT environment variable.
21
+ """
22
+
23
+ instrument_logging: Optional[bool] = None
24
+ """
25
+ If True, the OpenTelemetry logging instrumentation will be enabled.
26
+
27
+ If False, the OpenTelemetry logging instrumentation will be disabled.
28
+
29
+ Alternatively, set the OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED environment variable.
30
+
31
+ Defaults to True.
32
+ """
33
+
34
+ log_level: Optional[int] = None
35
+ """
36
+ The log level to use for the OpenTelemetry logging instrumentation.
37
+
38
+ Defaults to logging.INFO.
39
+ """
40
+
41
+ service_name: Optional[str] = None
42
+ """
43
+ The name of the service to use for the OpenTelemetry resource.
44
+ """
45
+
46
+ service_version: Optional[str] = None
47
+ """
48
+ The version of the service to use for the OpenTelemetry resource.
49
+ """
50
+
51
+ environment: Optional[str] = None
52
+ """
53
+ The environment of the service to use for the OpenTelemetry resource.
54
+ """
55
+
56
+ disable_export_error_logging: Optional[bool] = None
57
+ """
58
+ If True, the OpenTelemetry export error logging will be disabled.
59
+
60
+ Defaults to False.
61
+ """
62
+
63
+ def __getitem__(self, key: str):
64
+ return getattr(self, key)
@@ -0,0 +1,114 @@
1
+ [project]
2
+ name = "launchdarkly-observability"
3
+ version = "0.0.0"
4
+ description = "LaunchDarkly Observability for Python"
5
+ license = "Apache-2.0"
6
+ authors = [
7
+ { name = "LaunchDarkly Authors", email = "dev@launchdarkly.com" },
8
+ ]
9
+ readme = "README.md"
10
+ homepage = "https://www.launchdarkly.com"
11
+ repository = "https://github.com/launchdarkly/observablity-sdk"
12
+ documentation = "https://docs.launchdarkly.com"
13
+
14
+ classifiers = [
15
+ "Intended Audience :: Developers",
16
+ "License :: OSI Approved :: Apache Software License",
17
+ "Operating System :: OS Independent",
18
+ "Programming Language :: Python :: 3",
19
+ "Programming Language :: Python :: 3.8",
20
+ "Programming Language :: Python :: 3.9",
21
+ "Programming Language :: Python :: 3.10",
22
+ "Programming Language :: Python :: 3.11",
23
+ "Programming Language :: Python :: 3.12",
24
+ "Topic :: Software Development",
25
+ "Topic :: Software Development :: Libraries",
26
+ ]
27
+
28
+ requires-python = ">=3.9,<4"
29
+ dependencies = [
30
+ "opentelemetry-api==1.34.1",
31
+ "opentelemetry-exporter-otlp-proto-grpc==1.34.1",
32
+ "opentelemetry-instrumentation==0.55b1",
33
+ "opentelemetry-proto==1.34.1",
34
+ "opentelemetry-sdk==1.34.1",
35
+ "opentelemetry-instrumentation-aiohttp-client==0.55b1",
36
+ "opentelemetry-instrumentation-aiohttp-server==0.55b1",
37
+ "opentelemetry-instrumentation-anthropic==0.40.14",
38
+ "opentelemetry-instrumentation-bedrock==0.40.14",
39
+ "opentelemetry-instrumentation-boto==0.55b1",
40
+ "opentelemetry-instrumentation-boto3sqs==0.55b1",
41
+ "opentelemetry-instrumentation-celery==0.55b1",
42
+ "opentelemetry-instrumentation-chromadb==0.40.14",
43
+ "opentelemetry-instrumentation-cohere==0.40.14",
44
+ "opentelemetry-instrumentation-django==0.55b1",
45
+ "opentelemetry-instrumentation-fastapi==0.55b1",
46
+ "opentelemetry-instrumentation-flask==0.55b1",
47
+ "opentelemetry-instrumentation-grpc==0.55b1",
48
+ "opentelemetry-instrumentation-haystack==0.40.14",
49
+ "opentelemetry-instrumentation-httpx==0.55b1",
50
+ "opentelemetry-instrumentation-jinja2==0.55b1",
51
+ "opentelemetry-instrumentation-langchain==0.40.14",
52
+ "opentelemetry-instrumentation-llamaindex==0.40.14",
53
+ "opentelemetry-instrumentation-logging==0.55b1",
54
+ "opentelemetry-instrumentation-openai==0.40.14",
55
+ "opentelemetry-instrumentation-pinecone==0.40.14",
56
+ "opentelemetry-instrumentation-psycopg==0.55b1",
57
+ "opentelemetry-instrumentation-psycopg2==0.55b1",
58
+ "opentelemetry-instrumentation-qdrant==0.40.14",
59
+ "opentelemetry-instrumentation-redis==0.55b1",
60
+ "opentelemetry-instrumentation-replicate==0.40.14",
61
+ "opentelemetry-instrumentation-requests==0.55b1",
62
+ "opentelemetry-instrumentation-sqlalchemy==0.55b1",
63
+ "opentelemetry-instrumentation-sqlite3==0.55b1",
64
+ "opentelemetry-instrumentation-starlette==0.55b1",
65
+ "opentelemetry-instrumentation-system-metrics==0.55b1",
66
+ "opentelemetry-instrumentation-transformers==0.40.14",
67
+ "opentelemetry-instrumentation-urllib==0.55b1",
68
+ "opentelemetry-instrumentation-urllib3==0.55b1",
69
+ "opentelemetry-instrumentation-vertexai==0.40.14",
70
+ "opentelemetry-instrumentation-watsonx==0.40.14",
71
+ "opentelemetry-instrumentation-weaviate==0.40.14",
72
+ "opentelemetry-instrumentation-wsgi==0.55b1",
73
+ "urllib3>=2.2.1",
74
+ "requests>=2.31.0",
75
+ "ariadne-codegen (>=0.14.0,<0.15.0)",
76
+ ]
77
+
78
+ [project.optional-dependencies]
79
+ dev = [
80
+ "azure-functions>=1",
81
+ "black>=24",
82
+ "blinker>=1",
83
+ "django>=4",
84
+ "fastapi>=0",
85
+ "flask>=3",
86
+ "functions-framework>=3",
87
+ "loguru>=0",
88
+ "orjson==3.9.15",
89
+ "pytest>=8",
90
+ "pytest-asyncio>=0",
91
+ "pytest-cov>=5",
92
+ "pytest-mock>=3",
93
+ ]
94
+
95
+ [tool.poetry]
96
+ packages = [{ include = "ldobserve" }]
97
+
98
+ [build-system]
99
+ requires = ["poetry-core>=2.0.0,<3.0.0"]
100
+ build-backend = "poetry.core.masonry.api"
101
+
102
+ [project.entry-points."opentelemetry_configurator"]
103
+ configurator = "ldobserve.distro:LaunchDarklyOpenTelemetryConfigurator"
104
+
105
+ [project.entry-points.opentelemetry_distro]
106
+ configurator = "ldobserve.distro:LaunchDarklyOpenTelemetryDistro"
107
+
108
+ [tool.ariadne-codegen]
109
+ schema_path = "../../../../backend/public-graph/graph/schema.graphqls"
110
+ queries_path = "ldobserve/graph/operators/query.gql"
111
+ include_comments = "none"
112
+ target_package_name = "public_graph_client"
113
+ target_package_path = "ldobserve/graph/generated"
114
+ enable_custom_operations = true