dagster-datadog 0.11.7rc9__tar.gz → 0.28.4__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.
- {dagster-datadog-0.11.7rc9 → dagster_datadog-0.28.4}/LICENSE +1 -1
- {dagster-datadog-0.11.7rc9 → dagster_datadog-0.28.4}/MANIFEST.in +1 -0
- dagster_datadog-0.28.4/PKG-INFO +27 -0
- dagster_datadog-0.28.4/README.md +4 -0
- dagster_datadog-0.28.4/dagster_datadog/__init__.py +8 -0
- dagster_datadog-0.28.4/dagster_datadog/py.typed +1 -0
- dagster_datadog-0.28.4/dagster_datadog/resources.py +153 -0
- dagster_datadog-0.28.4/dagster_datadog/version.py +1 -0
- dagster_datadog-0.28.4/dagster_datadog.egg-info/PKG-INFO +27 -0
- {dagster-datadog-0.11.7rc9 → dagster_datadog-0.28.4}/dagster_datadog.egg-info/SOURCES.txt +2 -4
- dagster_datadog-0.28.4/dagster_datadog.egg-info/requires.txt +2 -0
- dagster_datadog-0.28.4/dagster_datadog.egg-info/top_level.txt +1 -0
- dagster_datadog-0.28.4/setup.py +40 -0
- dagster-datadog-0.11.7rc9/PKG-INFO +0 -15
- dagster-datadog-0.11.7rc9/README.md +0 -4
- dagster-datadog-0.11.7rc9/dagster_datadog/__init__.py +0 -8
- dagster-datadog-0.11.7rc9/dagster_datadog/resources.py +0 -85
- dagster-datadog-0.11.7rc9/dagster_datadog/version.py +0 -1
- dagster-datadog-0.11.7rc9/dagster_datadog.egg-info/PKG-INFO +0 -15
- dagster-datadog-0.11.7rc9/dagster_datadog.egg-info/requires.txt +0 -2
- dagster-datadog-0.11.7rc9/dagster_datadog.egg-info/top_level.txt +0 -2
- dagster-datadog-0.11.7rc9/dagster_datadog_tests/__init__.py +0 -0
- dagster-datadog-0.11.7rc9/dagster_datadog_tests/test_resources.py +0 -78
- dagster-datadog-0.11.7rc9/dagster_datadog_tests/test_version.py +0 -5
- dagster-datadog-0.11.7rc9/setup.py +0 -33
- {dagster-datadog-0.11.7rc9 → dagster_datadog-0.28.4}/dagster_datadog.egg-info/dependency_links.txt +0 -0
- {dagster-datadog-0.11.7rc9 → dagster_datadog-0.28.4}/dagster_datadog.egg-info/not-zip-safe +0 -0
- {dagster-datadog-0.11.7rc9 → dagster_datadog-0.28.4}/setup.cfg +0 -0
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright
|
|
189
|
+
Copyright 2025 Dagster Labs, Inc.
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dagster-datadog
|
|
3
|
+
Version: 0.28.4
|
|
4
|
+
Summary: Package for datadog Dagster framework components.
|
|
5
|
+
Home-page: https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-datadog
|
|
6
|
+
Author: Dagster Labs
|
|
7
|
+
Author-email: hello@dagsterlabs.com
|
|
8
|
+
License: Apache-2.0
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
13
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Requires-Python: >=3.10,<3.14
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: dagster==1.12.4
|
|
18
|
+
Requires-Dist: datadog
|
|
19
|
+
Dynamic: author
|
|
20
|
+
Dynamic: author-email
|
|
21
|
+
Dynamic: classifier
|
|
22
|
+
Dynamic: home-page
|
|
23
|
+
Dynamic: license
|
|
24
|
+
Dynamic: license-file
|
|
25
|
+
Dynamic: requires-dist
|
|
26
|
+
Dynamic: requires-python
|
|
27
|
+
Dynamic: summary
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
from dagster_shared.libraries import DagsterLibraryRegistry
|
|
2
|
+
|
|
3
|
+
from dagster_datadog.resources import DatadogResource, datadog_resource
|
|
4
|
+
from dagster_datadog.version import __version__
|
|
5
|
+
|
|
6
|
+
DagsterLibraryRegistry.register("dagster-datadog", __version__)
|
|
7
|
+
|
|
8
|
+
__all__ = ["DatadogResource", "datadog_resource"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
partial
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
from dagster import ConfigurableResource, resource
|
|
2
|
+
from dagster._annotations import beta
|
|
3
|
+
from dagster._core.definitions.resource_definition import dagster_maintained_resource
|
|
4
|
+
from datadog import DogStatsd, api, initialize, statsd
|
|
5
|
+
from pydantic import Field
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class DatadogClient:
|
|
9
|
+
# Mirroring levels from the dogstatsd library
|
|
10
|
+
OK, WARNING, CRITICAL, UNKNOWN = (
|
|
11
|
+
DogStatsd.OK,
|
|
12
|
+
DogStatsd.WARNING,
|
|
13
|
+
DogStatsd.CRITICAL,
|
|
14
|
+
DogStatsd.UNKNOWN,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
def __init__(self, api_key: str, app_key: str):
|
|
18
|
+
self.api_key = api_key
|
|
19
|
+
self.app_key = app_key
|
|
20
|
+
initialize(api_key=api_key, app_key=app_key)
|
|
21
|
+
|
|
22
|
+
# Pull in methods from the dogstatsd library
|
|
23
|
+
for method in [
|
|
24
|
+
"event",
|
|
25
|
+
"gauge",
|
|
26
|
+
"increment",
|
|
27
|
+
"decrement",
|
|
28
|
+
"histogram",
|
|
29
|
+
"distribution",
|
|
30
|
+
"set",
|
|
31
|
+
"service_check",
|
|
32
|
+
"timed",
|
|
33
|
+
"timing",
|
|
34
|
+
"flush",
|
|
35
|
+
"wait_for_pending",
|
|
36
|
+
]:
|
|
37
|
+
setattr(self, method, getattr(statsd, method))
|
|
38
|
+
|
|
39
|
+
self.api = api
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
@beta
|
|
43
|
+
class DatadogResource(ConfigurableResource):
|
|
44
|
+
"""This resource is a thin wrapper over the
|
|
45
|
+
`dogstatsd library <https://datadogpy.readthedocs.io/en/latest/>`_.
|
|
46
|
+
|
|
47
|
+
As such, we directly mirror the public API methods of DogStatsd here; you can refer to the
|
|
48
|
+
`Datadog documentation <https://docs.datadoghq.com/developers/dogstatsd/>`_ for how to use this
|
|
49
|
+
resource.
|
|
50
|
+
|
|
51
|
+
Examples:
|
|
52
|
+
.. code-block:: python
|
|
53
|
+
|
|
54
|
+
@op
|
|
55
|
+
def datadog_op(datadog_resource: DatadogResource):
|
|
56
|
+
datadog_client = datadog_resource.get_client()
|
|
57
|
+
datadog_client.event('Man down!', 'This server needs assistance.')
|
|
58
|
+
datadog_client.gauge('users.online', 1001, tags=["protocol:http"])
|
|
59
|
+
datadog_client.increment('page.views')
|
|
60
|
+
datadog_client.decrement('page.views')
|
|
61
|
+
datadog_client.histogram('album.photo.count', 26, tags=["gender:female"])
|
|
62
|
+
datadog_client.distribution('album.photo.count', 26, tags=["color:blue"])
|
|
63
|
+
datadog_client.set('visitors.uniques', 999, tags=["browser:ie"])
|
|
64
|
+
datadog_client.service_check('svc.check_name', datadog_client.WARNING)
|
|
65
|
+
datadog_client.timing("query.response.time", 1234)
|
|
66
|
+
|
|
67
|
+
# Use timed decorator
|
|
68
|
+
@datadog_client.timed('run_fn')
|
|
69
|
+
def run_fn():
|
|
70
|
+
pass
|
|
71
|
+
|
|
72
|
+
run_fn()
|
|
73
|
+
|
|
74
|
+
@job
|
|
75
|
+
def job_for_datadog_op() -> None:
|
|
76
|
+
datadog_op()
|
|
77
|
+
|
|
78
|
+
job_for_datadog_op.execute_in_process(
|
|
79
|
+
resources={"datadog_resource": DatadogResource(api_key="FOO", app_key="BAR")}
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
api_key: str = Field(
|
|
85
|
+
description=(
|
|
86
|
+
"Datadog API key. See https://docs.datadoghq.com/account_management/api-app-keys/"
|
|
87
|
+
)
|
|
88
|
+
)
|
|
89
|
+
app_key: str = Field(
|
|
90
|
+
description=(
|
|
91
|
+
"Datadog application key. See"
|
|
92
|
+
" https://docs.datadoghq.com/account_management/api-app-keys/."
|
|
93
|
+
)
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
@classmethod
|
|
97
|
+
def _is_dagster_maintained(cls) -> bool:
|
|
98
|
+
return True
|
|
99
|
+
|
|
100
|
+
def get_client(self) -> DatadogClient:
|
|
101
|
+
return DatadogClient(self.api_key, self.app_key)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
@beta
|
|
105
|
+
@dagster_maintained_resource
|
|
106
|
+
@resource(
|
|
107
|
+
config_schema=DatadogResource.to_config_schema(),
|
|
108
|
+
description="This resource is for publishing to DataDog",
|
|
109
|
+
)
|
|
110
|
+
def datadog_resource(context) -> DatadogClient:
|
|
111
|
+
"""This legacy resource is a thin wrapper over the
|
|
112
|
+
`dogstatsd library <https://datadogpy.readthedocs.io/en/latest/>`_.
|
|
113
|
+
|
|
114
|
+
Prefer using :py:class:`DatadogResource`.
|
|
115
|
+
|
|
116
|
+
As such, we directly mirror the public API methods of DogStatsd here; you can refer to the
|
|
117
|
+
`DataDog documentation <https://docs.datadoghq.com/developers/dogstatsd/>`_ for how to use this
|
|
118
|
+
resource.
|
|
119
|
+
|
|
120
|
+
Examples:
|
|
121
|
+
.. code-block:: python
|
|
122
|
+
|
|
123
|
+
@op(required_resource_keys={'datadog'})
|
|
124
|
+
def datadog_op(context):
|
|
125
|
+
dd = context.resources.datadog
|
|
126
|
+
|
|
127
|
+
dd.event('Man down!', 'This server needs assistance.')
|
|
128
|
+
dd.gauge('users.online', 1001, tags=["protocol:http"])
|
|
129
|
+
dd.increment('page.views')
|
|
130
|
+
dd.decrement('page.views')
|
|
131
|
+
dd.histogram('album.photo.count', 26, tags=["gender:female"])
|
|
132
|
+
dd.distribution('album.photo.count', 26, tags=["color:blue"])
|
|
133
|
+
dd.set('visitors.uniques', 999, tags=["browser:ie"])
|
|
134
|
+
dd.service_check('svc.check_name', dd.WARNING)
|
|
135
|
+
dd.timing("query.response.time", 1234)
|
|
136
|
+
|
|
137
|
+
# Use timed decorator
|
|
138
|
+
@dd.timed('run_fn')
|
|
139
|
+
def run_fn():
|
|
140
|
+
pass
|
|
141
|
+
|
|
142
|
+
run_fn()
|
|
143
|
+
|
|
144
|
+
@job(resource_defs={'datadog': datadog_resource})
|
|
145
|
+
def dd_job():
|
|
146
|
+
datadog_op()
|
|
147
|
+
|
|
148
|
+
result = dd_job.execute_in_process(
|
|
149
|
+
run_config={'resources': {'datadog': {'config': {'api_key': 'YOUR_KEY', 'app_key': 'YOUR_KEY'}}}}
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
"""
|
|
153
|
+
return DatadogResource.from_resource_context(context).get_client()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.28.4"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dagster-datadog
|
|
3
|
+
Version: 0.28.4
|
|
4
|
+
Summary: Package for datadog Dagster framework components.
|
|
5
|
+
Home-page: https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-datadog
|
|
6
|
+
Author: Dagster Labs
|
|
7
|
+
Author-email: hello@dagsterlabs.com
|
|
8
|
+
License: Apache-2.0
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
13
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Requires-Python: >=3.10,<3.14
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: dagster==1.12.4
|
|
18
|
+
Requires-Dist: datadog
|
|
19
|
+
Dynamic: author
|
|
20
|
+
Dynamic: author-email
|
|
21
|
+
Dynamic: classifier
|
|
22
|
+
Dynamic: home-page
|
|
23
|
+
Dynamic: license
|
|
24
|
+
Dynamic: license-file
|
|
25
|
+
Dynamic: requires-dist
|
|
26
|
+
Dynamic: requires-python
|
|
27
|
+
Dynamic: summary
|
|
@@ -4,6 +4,7 @@ README.md
|
|
|
4
4
|
setup.cfg
|
|
5
5
|
setup.py
|
|
6
6
|
dagster_datadog/__init__.py
|
|
7
|
+
dagster_datadog/py.typed
|
|
7
8
|
dagster_datadog/resources.py
|
|
8
9
|
dagster_datadog/version.py
|
|
9
10
|
dagster_datadog.egg-info/PKG-INFO
|
|
@@ -11,7 +12,4 @@ dagster_datadog.egg-info/SOURCES.txt
|
|
|
11
12
|
dagster_datadog.egg-info/dependency_links.txt
|
|
12
13
|
dagster_datadog.egg-info/not-zip-safe
|
|
13
14
|
dagster_datadog.egg-info/requires.txt
|
|
14
|
-
dagster_datadog.egg-info/top_level.txt
|
|
15
|
-
dagster_datadog_tests/__init__.py
|
|
16
|
-
dagster_datadog_tests/test_resources.py
|
|
17
|
-
dagster_datadog_tests/test_version.py
|
|
15
|
+
dagster_datadog.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
dagster_datadog
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
from setuptools import find_packages, setup
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def get_version() -> str:
|
|
7
|
+
version: dict[str, str] = {}
|
|
8
|
+
with open(Path(__file__).parent / "dagster_datadog/version.py", encoding="utf8") as fp:
|
|
9
|
+
exec(fp.read(), version)
|
|
10
|
+
|
|
11
|
+
return version["__version__"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
ver = get_version()
|
|
15
|
+
# dont pin dev installs to avoid pip dep resolver issues
|
|
16
|
+
pin = "" if ver == "1!0+dev" else f"=={ver}"
|
|
17
|
+
setup(
|
|
18
|
+
name="dagster-datadog",
|
|
19
|
+
version=ver,
|
|
20
|
+
author="Dagster Labs",
|
|
21
|
+
author_email="hello@dagsterlabs.com",
|
|
22
|
+
license="Apache-2.0",
|
|
23
|
+
description="Package for datadog Dagster framework components.",
|
|
24
|
+
url=(
|
|
25
|
+
"https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-datadog"
|
|
26
|
+
),
|
|
27
|
+
classifiers=[
|
|
28
|
+
"Programming Language :: Python :: 3.10",
|
|
29
|
+
"Programming Language :: Python :: 3.11",
|
|
30
|
+
"Programming Language :: Python :: 3.12",
|
|
31
|
+
"Programming Language :: Python :: 3.13",
|
|
32
|
+
"License :: OSI Approved :: Apache Software License",
|
|
33
|
+
"Operating System :: OS Independent",
|
|
34
|
+
],
|
|
35
|
+
packages=find_packages(exclude=["dagster_datadog_tests*"]),
|
|
36
|
+
include_package_data=True,
|
|
37
|
+
python_requires=">=3.10,<3.14",
|
|
38
|
+
install_requires=["dagster==1.12.4", "datadog"],
|
|
39
|
+
zip_safe=False,
|
|
40
|
+
)
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 1.1
|
|
2
|
-
Name: dagster-datadog
|
|
3
|
-
Version: 0.11.7rc9
|
|
4
|
-
Summary: Package for datadog Dagster framework components.
|
|
5
|
-
Home-page: https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-datadog
|
|
6
|
-
Author: Elementl
|
|
7
|
-
Author-email: hello@elementl.com
|
|
8
|
-
License: Apache-2.0
|
|
9
|
-
Description: UNKNOWN
|
|
10
|
-
Platform: UNKNOWN
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
14
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
15
|
-
Classifier: Operating System :: OS Independent
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
from dagster import Field, StringSource, resource
|
|
2
|
-
from datadog import DogStatsd, initialize, statsd
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class DataDogResource:
|
|
6
|
-
# Mirroring levels from the dogstatsd library
|
|
7
|
-
OK, WARNING, CRITICAL, UNKNOWN = (
|
|
8
|
-
DogStatsd.OK,
|
|
9
|
-
DogStatsd.WARNING,
|
|
10
|
-
DogStatsd.CRITICAL,
|
|
11
|
-
DogStatsd.UNKNOWN,
|
|
12
|
-
)
|
|
13
|
-
|
|
14
|
-
def __init__(self, api_key, app_key):
|
|
15
|
-
initialize(api_key=api_key, app_key=app_key)
|
|
16
|
-
|
|
17
|
-
# Pull in methods from the dogstatsd library
|
|
18
|
-
for method in [
|
|
19
|
-
"event",
|
|
20
|
-
"gauge",
|
|
21
|
-
"increment",
|
|
22
|
-
"decrement",
|
|
23
|
-
"histogram",
|
|
24
|
-
"distribution",
|
|
25
|
-
"set",
|
|
26
|
-
"service_check",
|
|
27
|
-
"timed",
|
|
28
|
-
"timing",
|
|
29
|
-
]:
|
|
30
|
-
setattr(self, method, getattr(statsd, method))
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
@resource(
|
|
34
|
-
{
|
|
35
|
-
"api_key": Field(StringSource, description="Datadog API key"),
|
|
36
|
-
"app_key": Field(StringSource, description="Datadog application key"),
|
|
37
|
-
},
|
|
38
|
-
description="This resource is for publishing to DataDog",
|
|
39
|
-
)
|
|
40
|
-
def datadog_resource(context):
|
|
41
|
-
"""This resource is a thin wrapper over the
|
|
42
|
-
`dogstatsd library <https://datadogpy.readthedocs.io/en/latest/>`_.
|
|
43
|
-
|
|
44
|
-
As such, we directly mirror the public API methods of DogStatsd here; you can refer to the
|
|
45
|
-
`DataDog documentation <https://docs.datadoghq.com/developers/dogstatsd/>`_ for how to use this
|
|
46
|
-
resource.
|
|
47
|
-
|
|
48
|
-
Examples:
|
|
49
|
-
|
|
50
|
-
.. code-block:: python
|
|
51
|
-
|
|
52
|
-
@solid(required_resource_keys={'datadog'})
|
|
53
|
-
def datadog_solid(context):
|
|
54
|
-
dd = context.resources.datadog
|
|
55
|
-
|
|
56
|
-
dd.event('Man down!', 'This server needs assistance.')
|
|
57
|
-
dd.gauge('users.online', 1001, tags=["protocol:http"])
|
|
58
|
-
dd.increment('page.views')
|
|
59
|
-
dd.decrement('page.views')
|
|
60
|
-
dd.histogram('album.photo.count', 26, tags=["gender:female"])
|
|
61
|
-
dd.distribution('album.photo.count', 26, tags=["color:blue"])
|
|
62
|
-
dd.set('visitors.uniques', 999, tags=["browser:ie"])
|
|
63
|
-
dd.service_check('svc.check_name', dd.WARNING)
|
|
64
|
-
dd.timing("query.response.time", 1234)
|
|
65
|
-
|
|
66
|
-
# Use timed decorator
|
|
67
|
-
@dd.timed('run_fn')
|
|
68
|
-
def run_fn():
|
|
69
|
-
pass
|
|
70
|
-
|
|
71
|
-
run_fn()
|
|
72
|
-
|
|
73
|
-
@pipeline(mode_defs=[ModeDefinition(resource_defs={'datadog': datadog_resource})])
|
|
74
|
-
def dd_pipeline():
|
|
75
|
-
datadog_solid()
|
|
76
|
-
|
|
77
|
-
result = execute_pipeline(
|
|
78
|
-
dd_pipeline,
|
|
79
|
-
{'resources': {'datadog': {'config': {'api_key': 'YOUR_KEY', 'app_key': 'YOUR_KEY'}}}},
|
|
80
|
-
)
|
|
81
|
-
|
|
82
|
-
"""
|
|
83
|
-
return DataDogResource(
|
|
84
|
-
context.resource_config.get("api_key"), context.resource_config.get("app_key")
|
|
85
|
-
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.11.7rc9"
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 1.1
|
|
2
|
-
Name: dagster-datadog
|
|
3
|
-
Version: 0.11.7rc9
|
|
4
|
-
Summary: Package for datadog Dagster framework components.
|
|
5
|
-
Home-page: https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-datadog
|
|
6
|
-
Author: Elementl
|
|
7
|
-
Author-email: hello@elementl.com
|
|
8
|
-
License: Apache-2.0
|
|
9
|
-
Description: UNKNOWN
|
|
10
|
-
Platform: UNKNOWN
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
14
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
15
|
-
Classifier: Operating System :: OS Independent
|
|
File without changes
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
from unittest import mock
|
|
2
|
-
|
|
3
|
-
from dagster import ModeDefinition, execute_solid, solid
|
|
4
|
-
from dagster_datadog import datadog_resource
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
@mock.patch("datadog.statsd.timing")
|
|
8
|
-
@mock.patch("datadog.statsd.timed")
|
|
9
|
-
@mock.patch("datadog.statsd.service_check")
|
|
10
|
-
@mock.patch("datadog.statsd.set")
|
|
11
|
-
@mock.patch("datadog.statsd.distribution")
|
|
12
|
-
@mock.patch("datadog.statsd.histogram")
|
|
13
|
-
@mock.patch("datadog.statsd.decrement")
|
|
14
|
-
@mock.patch("datadog.statsd.increment")
|
|
15
|
-
@mock.patch("datadog.statsd.gauge")
|
|
16
|
-
@mock.patch("datadog.statsd.event")
|
|
17
|
-
def test_datadog_resource(
|
|
18
|
-
event,
|
|
19
|
-
gauge,
|
|
20
|
-
increment,
|
|
21
|
-
decrement,
|
|
22
|
-
histogram,
|
|
23
|
-
distribution,
|
|
24
|
-
statsd_set,
|
|
25
|
-
service_check,
|
|
26
|
-
timed,
|
|
27
|
-
timing,
|
|
28
|
-
):
|
|
29
|
-
@solid(required_resource_keys={"datadog"})
|
|
30
|
-
def datadog_solid(context):
|
|
31
|
-
assert context.resources.datadog
|
|
32
|
-
|
|
33
|
-
# event
|
|
34
|
-
context.resources.datadog.event("Man down!", "This server needs assistance.")
|
|
35
|
-
event.assert_called_with("Man down!", "This server needs assistance.")
|
|
36
|
-
|
|
37
|
-
# gauge
|
|
38
|
-
context.resources.datadog.gauge("users.online", 1001, tags=["protocol:http"])
|
|
39
|
-
gauge.assert_called_with("users.online", 1001, tags=["protocol:http"])
|
|
40
|
-
|
|
41
|
-
# increment
|
|
42
|
-
context.resources.datadog.increment("page.views")
|
|
43
|
-
increment.assert_called_with("page.views")
|
|
44
|
-
|
|
45
|
-
# decrement
|
|
46
|
-
context.resources.datadog.decrement("page.views")
|
|
47
|
-
decrement.assert_called_with("page.views")
|
|
48
|
-
|
|
49
|
-
context.resources.datadog.histogram("album.photo.count", 26, tags=["gender:female"])
|
|
50
|
-
histogram.assert_called_with("album.photo.count", 26, tags=["gender:female"])
|
|
51
|
-
|
|
52
|
-
context.resources.datadog.distribution("album.photo.count", 26, tags=["color:blue"])
|
|
53
|
-
distribution.assert_called_with("album.photo.count", 26, tags=["color:blue"])
|
|
54
|
-
|
|
55
|
-
context.resources.datadog.set("visitors.uniques", 999, tags=["browser:ie"])
|
|
56
|
-
statsd_set.assert_called_with("visitors.uniques", 999, tags=["browser:ie"])
|
|
57
|
-
|
|
58
|
-
context.resources.datadog.service_check("svc.check_name", context.resources.datadog.WARNING)
|
|
59
|
-
service_check.assert_called_with("svc.check_name", context.resources.datadog.WARNING)
|
|
60
|
-
|
|
61
|
-
context.resources.datadog.timing("query.response.time", 1234)
|
|
62
|
-
timing.assert_called_with("query.response.time", 1234)
|
|
63
|
-
|
|
64
|
-
@context.resources.datadog.timed("run_fn")
|
|
65
|
-
def run_fn():
|
|
66
|
-
pass
|
|
67
|
-
|
|
68
|
-
run_fn()
|
|
69
|
-
timed.assert_called_with("run_fn")
|
|
70
|
-
|
|
71
|
-
result = execute_solid(
|
|
72
|
-
datadog_solid,
|
|
73
|
-
run_config={
|
|
74
|
-
"resources": {"datadog": {"config": {"api_key": "NOT_USED", "app_key": "NOT_USED"}}}
|
|
75
|
-
},
|
|
76
|
-
mode_def=ModeDefinition(resource_defs={"datadog": datadog_resource}),
|
|
77
|
-
)
|
|
78
|
-
assert result.success
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
from typing import Dict
|
|
2
|
-
|
|
3
|
-
from setuptools import find_packages, setup # type: ignore
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
def get_version() -> str:
|
|
7
|
-
version: Dict[str, str] = {}
|
|
8
|
-
with open("dagster_datadog/version.py") as fp:
|
|
9
|
-
exec(fp.read(), version) # pylint: disable=W0122
|
|
10
|
-
|
|
11
|
-
return version["__version__"]
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if __name__ == "__main__":
|
|
15
|
-
setup(
|
|
16
|
-
name="dagster-datadog",
|
|
17
|
-
version=get_version(),
|
|
18
|
-
author="Elementl",
|
|
19
|
-
author_email="hello@elementl.com",
|
|
20
|
-
license="Apache-2.0",
|
|
21
|
-
description="Package for datadog Dagster framework components.",
|
|
22
|
-
url="https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-datadog",
|
|
23
|
-
classifiers=[
|
|
24
|
-
"Programming Language :: Python :: 3.6",
|
|
25
|
-
"Programming Language :: Python :: 3.7",
|
|
26
|
-
"Programming Language :: Python :: 3.8",
|
|
27
|
-
"License :: OSI Approved :: Apache Software License",
|
|
28
|
-
"Operating System :: OS Independent",
|
|
29
|
-
],
|
|
30
|
-
packages=find_packages(exclude=["test"]),
|
|
31
|
-
install_requires=["dagster", "datadog"],
|
|
32
|
-
zip_safe=False,
|
|
33
|
-
)
|
{dagster-datadog-0.11.7rc9 → dagster_datadog-0.28.4}/dagster_datadog.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|