dagster-cloud 1.12.10__py3-none-any.whl → 1.12.12__py3-none-any.whl

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.
Files changed (37) hide show
  1. dagster_cloud/agent/dagster_cloud_agent.py +43 -86
  2. dagster_cloud/instance/__init__.py +1 -28
  3. dagster_cloud/pex/grpc/server/manager.py +3 -3
  4. dagster_cloud/version.py +1 -1
  5. dagster_cloud/workspace/docker/__init__.py +2 -1
  6. dagster_cloud/workspace/ecs/client.py +1 -1
  7. dagster_cloud/workspace/ecs/launcher.py +8 -4
  8. dagster_cloud/workspace/kubernetes/launcher.py +5 -3
  9. dagster_cloud/workspace/kubernetes/utils.py +6 -3
  10. dagster_cloud/workspace/user_code_launcher/user_code_launcher.py +41 -104
  11. dagster_cloud/workspace/user_code_launcher/utils.py +14 -0
  12. {dagster_cloud-1.12.10.dist-info → dagster_cloud-1.12.12.dist-info}/METADATA +16 -13
  13. {dagster_cloud-1.12.10.dist-info → dagster_cloud-1.12.12.dist-info}/RECORD +15 -37
  14. {dagster_cloud-1.12.10.dist-info → dagster_cloud-1.12.12.dist-info}/WHEEL +1 -1
  15. dagster_cloud/agent/instrumentation/__init__.py +0 -0
  16. dagster_cloud/agent/instrumentation/constants.py +0 -2
  17. dagster_cloud/agent/instrumentation/run_launch.py +0 -23
  18. dagster_cloud/agent/instrumentation/schedule.py +0 -34
  19. dagster_cloud/agent/instrumentation/sensor.py +0 -34
  20. dagster_cloud/opentelemetry/__init__.py +0 -0
  21. dagster_cloud/opentelemetry/config/__init__.py +0 -73
  22. dagster_cloud/opentelemetry/config/exporter.py +0 -81
  23. dagster_cloud/opentelemetry/config/log_record_processor.py +0 -40
  24. dagster_cloud/opentelemetry/config/logging_handler.py +0 -14
  25. dagster_cloud/opentelemetry/config/meter_provider.py +0 -9
  26. dagster_cloud/opentelemetry/config/metric_reader.py +0 -39
  27. dagster_cloud/opentelemetry/controller.py +0 -319
  28. dagster_cloud/opentelemetry/enum.py +0 -58
  29. dagster_cloud/opentelemetry/factories/__init__.py +0 -1
  30. dagster_cloud/opentelemetry/factories/logs.py +0 -113
  31. dagster_cloud/opentelemetry/factories/metrics.py +0 -121
  32. dagster_cloud/opentelemetry/metrics/__init__.py +0 -0
  33. dagster_cloud/opentelemetry/metrics/meter.py +0 -140
  34. dagster_cloud/opentelemetry/observers/__init__.py +0 -0
  35. dagster_cloud/opentelemetry/observers/dagster_exception_handler.py +0 -40
  36. dagster_cloud/opentelemetry/observers/execution_observer.py +0 -178
  37. {dagster_cloud-1.12.10.dist-info → dagster_cloud-1.12.12.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,6 @@
1
1
  import hashlib
2
2
  import json
3
+ import os
3
4
  import uuid
4
5
  from typing import Optional
5
6
 
@@ -8,6 +9,19 @@ from dagster._core.instance.ref import InstanceRef
8
9
  from dagster._serdes import serialize_value
9
10
  from dagster_cloud_cli.core.workspace import CodeLocationDeployData
10
11
 
12
+ DEFAULT_CODE_SERVER_PORT = 4000
13
+
14
+
15
+ def get_code_server_port() -> int:
16
+ """Returns the code server port from DAGSTER_CLOUD_CODE_SERVER_PORT env var.
17
+
18
+ Defaults to 4000 if the environment variable is not set.
19
+ """
20
+ port_str = os.environ.get("DAGSTER_CLOUD_CODE_SERVER_PORT")
21
+ if port_str is None:
22
+ return DEFAULT_CODE_SERVER_PORT
23
+ return int(port_str)
24
+
11
25
 
12
26
  def unique_resource_name(deployment_name, location_name, length_limit, sanitize_fn):
13
27
  hash_value = str(uuid.uuid4().hex)[0:6]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dagster-cloud
3
- Version: 1.12.10
3
+ Version: 1.12.12
4
4
  Author-email: Elementl <support@elementl.com>
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://dagster.io/cloud
@@ -22,19 +22,17 @@ Classifier: Programming Language :: Python :: 3.9
22
22
  Classifier: Programming Language :: Python :: 3.10
23
23
  Classifier: Programming Language :: Python :: 3.11
24
24
  Classifier: Programming Language :: Python :: 3.12
25
+ Classifier: Programming Language :: Python :: 3.13
26
+ Classifier: Programming Language :: Python :: 3.14
25
27
  Classifier: License :: OSI Approved :: Apache Software License
26
28
  Classifier: Topic :: System :: Monitoring
27
29
  Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
28
30
  Classifier: Operating System :: OS Independent
29
- Requires-Python: <3.14,>=3.9
31
+ Requires-Python: <3.15,>=3.9
30
32
  Description-Content-Type: text/markdown
31
- Requires-Dist: dagster==1.12.10
32
- Requires-Dist: dagster-shared==1.12.10
33
- Requires-Dist: dagster-cloud-cli==1.12.10
34
- Requires-Dist: opentelemetry-api<2,>=1.27.0
35
- Requires-Dist: opentelemetry-sdk<2,>=1.27.0
36
- Requires-Dist: opentelemetry-exporter-otlp-proto-grpc<2,>=1.27.0
37
- Requires-Dist: opentelemetry-exporter-otlp-proto-http<2,>=1.27.0
33
+ Requires-Dist: dagster==1.12.12
34
+ Requires-Dist: dagster-shared==1.12.12
35
+ Requires-Dist: dagster-cloud-cli==1.12.12
38
36
  Requires-Dist: pex<2.60.0,>=2.1.132
39
37
  Requires-Dist: questionary
40
38
  Requires-Dist: requests
@@ -53,24 +51,29 @@ Requires-Dist: pylint; extra == "tests"
53
51
  Requires-Dist: pytest; extra == "tests"
54
52
  Requires-Dist: types-PyYAML; extra == "tests"
55
53
  Requires-Dist: types-requests; extra == "tests"
56
- Requires-Dist: dagster-cloud-test-infra; extra == "tests"
57
54
  Requires-Dist: dbt-bigquery>=1.9.0; extra == "tests"
58
55
  Requires-Dist: dbt-core; extra == "tests"
59
56
  Requires-Dist: dbt-snowflake; extra == "tests"
60
57
  Requires-Dist: dbt-duckdb; extra == "tests"
61
58
  Requires-Dist: dagster-dbt; extra == "tests"
62
59
  Requires-Dist: dagster-k8s; extra == "tests"
60
+ Requires-Dist: dagster-docker; extra == "tests"
63
61
  Requires-Dist: dagster-cloud-backend; extra == "tests"
62
+ Requires-Dist: dagster-test; extra == "tests"
63
+ Requires-Dist: dagster-cloud-test-infra; extra == "tests"
64
+ Requires-Dist: dagster-cloud-dagit; extra == "tests"
65
+ Requires-Dist: dagster-dg-cli; extra == "tests"
66
+ Requires-Dist: syrupy; extra == "tests"
64
67
  Provides-Extra: insights
65
68
  Requires-Dist: pyarrow; extra == "insights"
66
69
  Provides-Extra: docker
67
70
  Requires-Dist: docker; extra == "docker"
68
- Requires-Dist: dagster-docker==0.28.10; extra == "docker"
71
+ Requires-Dist: dagster-docker==0.28.12; extra == "docker"
69
72
  Provides-Extra: kubernetes
70
73
  Requires-Dist: kubernetes; extra == "kubernetes"
71
- Requires-Dist: dagster-k8s==0.28.10; extra == "kubernetes"
74
+ Requires-Dist: dagster-k8s==0.28.12; extra == "kubernetes"
72
75
  Provides-Extra: ecs
73
- Requires-Dist: dagster-aws==0.28.10; extra == "ecs"
76
+ Requires-Dist: dagster-aws==0.28.12; extra == "ecs"
74
77
  Requires-Dist: boto3; extra == "ecs"
75
78
  Provides-Extra: sandbox
76
79
  Requires-Dist: supervisor; extra == "sandbox"
@@ -1,16 +1,11 @@
1
1
  dagster_cloud/__init__.py,sha256=zyM9bqyJFxtEClv_5X4VRldrj0UniKgZzEl0pPJJ_Ts,355
2
2
  dagster_cloud/constants.py,sha256=CPAqXJ99SWGMviksdIA2A9894FEvHChNk8UcP4TluYM,455
3
3
  dagster_cloud/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- dagster_cloud/version.py,sha256=GX6pK-MXEc7Qkjz8JfsyRXF34LXYUDbzbFGeDjwSQ5c,24
4
+ dagster_cloud/version.py,sha256=vKk1j8B-0kB8gelcQBK0OZVY0ogGIIA3KR4K_1iNmJQ,24
5
5
  dagster_cloud/agent/__init__.py,sha256=_erVyIrxuHUiyNerwX8vNZcKZN8NAloTEkPq8vPZ3MI,811
6
- dagster_cloud/agent/dagster_cloud_agent.py,sha256=UXxpuRPaWGUgfwW_1rWg9YnP0sPyhtao4WYqFzXtIkk,61564
6
+ dagster_cloud/agent/dagster_cloud_agent.py,sha256=SK_aJX60jXtMbV9ebtSqN6R9XAmF51bl9uEMA9DJdNo,59009
7
7
  dagster_cloud/agent/queries.py,sha256=iI84GQ1Zxt5ryo6M1ELIaIae-gwUY14QPPMUeiFK97o,1837
8
8
  dagster_cloud/agent/cli/__init__.py,sha256=rGbeQJ2Ap95wPYQuk5XbyHAfP9cs-XPUSmuVM_k278k,9084
9
- dagster_cloud/agent/instrumentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- dagster_cloud/agent/instrumentation/constants.py,sha256=X4GG4adYsOAde_kff89LtErMS9abbna_wm9sjGPvvlw,95
11
- dagster_cloud/agent/instrumentation/run_launch.py,sha256=fiEgW4UAtljMZzEZDidpTTT42yCfwoCYiaizVml5zRQ,734
12
- dagster_cloud/agent/instrumentation/schedule.py,sha256=DRhJ_2PwGeaeOZ1ey9NbSsAplY_EJS1supcrljtc858,1304
13
- dagster_cloud/agent/instrumentation/sensor.py,sha256=wGpe3XHyXx4PWlXEa7CNQq3f7-IxWdOgTLEJH2FRnGk,1290
14
9
  dagster_cloud/anomaly_detection/__init__.py,sha256=5sFqtRv6jEvUGN3-oXmSlUZ_dPj_L29SoVFBFuHkMvU,341
15
10
  dagster_cloud/anomaly_detection/defs.py,sha256=_CgpMed-B3kAOukSXcbR7hm6n3tJIoC4TvnZGYaUTTo,10162
16
11
  dagster_cloud/anomaly_detection/mutation.py,sha256=TDMwkfWGXKF0609FL8T1NgnXgtIoSi8VpjSQ3y89C8Y,410
@@ -46,29 +41,12 @@ dagster_cloud/execution/cloud_run_launcher/process.py,sha256=eYxvzcaJbqYKjHcXMUU
46
41
  dagster_cloud/execution/monitoring/__init__.py,sha256=2_o2UjeEPvfSpnOb0zky3ZQs-G9VHABAXzjvfMnAh8A,17782
47
42
  dagster_cloud/execution/utils/__init__.py,sha256=EfU-tK5-ScZYLF_zmWqUgIrmLsb9DDHWFN-CSg3BSXY,254
48
43
  dagster_cloud/execution/utils/process.py,sha256=Er6FKMdlGBjpOHDEIkukZf4-TiZ3Xi_iqurfxkOozGM,911
49
- dagster_cloud/instance/__init__.py,sha256=v_9zjhcf-nXYpK9KoOBax4T1vb8rp_05U1bAi3Tgot0,28228
44
+ dagster_cloud/instance/__init__.py,sha256=fGNKbJkE1xBf8k9Xa-OLSwJkTmNMYNBaR-44QWdZsX0,27053
50
45
  dagster_cloud/instrumentation/__init__.py,sha256=OKaT4qkwQNmCFdKveVrgB7JIo5sZD1F1rutQKdozK_4,886
51
46
  dagster_cloud/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
47
  dagster_cloud/metadata/source_code.py,sha256=yCUfD6V-wR2s4AUrmVpX_Dd7Gln7SYbtpuEpAH71J1I,5952
53
48
  dagster_cloud/metrics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
49
  dagster_cloud/metrics/tracer.py,sha256=DtVuEUp6LI2p8LRyMcuNBn4dChs8vGT9swSCtuYHgIw,1518
55
- dagster_cloud/opentelemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
- dagster_cloud/opentelemetry/controller.py,sha256=48CvdcljFZ0ZEtDlzMtRfF1fOzVYsSMr08w9dw5je08,13030
57
- dagster_cloud/opentelemetry/enum.py,sha256=ls6J0fde00WP9vYdFNUOQijbTBGsb7kRD0lar6ImtLk,1686
58
- dagster_cloud/opentelemetry/config/__init__.py,sha256=Aegfue6NedLV64yCAKQtV3uDjJJLjWKeg53F7SQ46zs,2868
59
- dagster_cloud/opentelemetry/config/exporter.py,sha256=zznpS4PaBJ5RrvJiRZH-DBi0k0tMK7_xsUbrmbpsyxM,3551
60
- dagster_cloud/opentelemetry/config/log_record_processor.py,sha256=nCeOwxHUlWaes0MHUFvkRlofa5w0_alHpuFYQhLuccY,1631
61
- dagster_cloud/opentelemetry/config/logging_handler.py,sha256=POuO_Q_mcsXm9bIdIbg_oEvNswISgkbuYx6R2XiNykw,378
62
- dagster_cloud/opentelemetry/config/meter_provider.py,sha256=CDNMaO-CDOWM8MwY6PG0FWSM326QiK1G4pLUtal_2Ew,242
63
- dagster_cloud/opentelemetry/config/metric_reader.py,sha256=pZ-H7stZ-Dv4rfZHdbgM0Ko1CCKRrI7Yl-DIixGIPDY,1636
64
- dagster_cloud/opentelemetry/factories/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
65
- dagster_cloud/opentelemetry/factories/logs.py,sha256=U8nGPYnYZPP0SA2Lu5l9cclscZqZLFhpnKnBeMU1wuQ,4047
66
- dagster_cloud/opentelemetry/factories/metrics.py,sha256=GnTqoNpKkbabIYfY9-ISD2TalXSllp43UgIOPT4HqyY,4659
67
- dagster_cloud/opentelemetry/metrics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
- dagster_cloud/opentelemetry/metrics/meter.py,sha256=g8mFN2uESWE1aHZcu4GqdBJaXwx6Hlm0y_x2GfghXf8,4447
69
- dagster_cloud/opentelemetry/observers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- dagster_cloud/opentelemetry/observers/dagster_exception_handler.py,sha256=EzSeP7-pndKkMiBf8wXVOnuyvcPxToB4QqWOisA1Hm8,1813
71
- dagster_cloud/opentelemetry/observers/execution_observer.py,sha256=ZpD74KGUm6f_XnP5sJVgl8-u_pX8p-98PmlhnN0V9KM,6287
72
50
  dagster_cloud/pex/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
51
  dagster_cloud/pex/grpc/__init__.py,sha256=hWUUK6Rz4Yb-eqWsQlcbN_u5T5a8E9XrS28_i-UIFCw,371
74
52
  dagster_cloud/pex/grpc/client.py,sha256=dzHY9GTpMeJmILiA1g-F8zTse65dlSjXOO0oGLL9i84,5356
@@ -79,7 +57,7 @@ dagster_cloud/pex/grpc/__generated__/multi_pex_api_pb2.py,sha256=5WTKXp6mq4bREnT
79
57
  dagster_cloud/pex/grpc/__generated__/multi_pex_api_pb2.pyi,sha256=RdlI8IAu7NxLB0LE3lGGtFMTCfiBxFWPjBwtYvFiiaY,5922
80
58
  dagster_cloud/pex/grpc/__generated__/multi_pex_api_pb2_grpc.py,sha256=cCwuUnJ1UH3NFLebv1EZG_TfsV8n9IF9A-WTsfXIeZk,9301
81
59
  dagster_cloud/pex/grpc/server/__init__.py,sha256=OKZqM9NdiRBUOUtWRdWG1_kaS13ELJJ5yHTHUc375ns,177
82
- dagster_cloud/pex/grpc/server/manager.py,sha256=SegQH4TbzmZenS5Hm3Fk2R4ps2tyAGP4QGqXWKwLbJY,18771
60
+ dagster_cloud/pex/grpc/server/manager.py,sha256=t1Gozwu05XTCPwIrmOkLUmK0QOayNQDDmIevE7vw9C4,18756
83
61
  dagster_cloud/pex/grpc/server/registry.py,sha256=8K7K0X3vxK3LBz9JSglDWs5BSktQ0ohCz9INYrDM08w,12940
84
62
  dagster_cloud/pex/grpc/server/server.py,sha256=wdpCFDKQbV7C-M9l5PryQjwtGZphdaG7hO1a3GVXqbQ,16441
85
63
  dagster_cloud/pex/grpc/server/cli/__init__.py,sha256=Se6sC8sSWlkgO_RdD4KPO-0xNua3IwXIeM9b_u10Hlo,2523
@@ -113,22 +91,22 @@ dagster_cloud/workspace/config_schema/__init__.py,sha256=tkGPjf7fw_k0bB_FDZJsIdN
113
91
  dagster_cloud/workspace/config_schema/docker.py,sha256=Xs7FDBVpIOMlWcKXrVWX_lSDgf9qpc9UpYcps1IdQDQ,967
114
92
  dagster_cloud/workspace/config_schema/ecs.py,sha256=NKB08hsYlowORvBHCrTqmKVbF67q1XDb-40s1phI5DE,6575
115
93
  dagster_cloud/workspace/config_schema/kubernetes.py,sha256=JIdZ5hX06hAw1lGT-5AcwZjfoKMnMj3PKjaQ9GDUL-U,5286
116
- dagster_cloud/workspace/docker/__init__.py,sha256=2lFoeX45PWf6xUaVwj9p8lNEar8XzVvHd2MfjMR7C-s,15160
94
+ dagster_cloud/workspace/docker/__init__.py,sha256=LLjxPAUHtxuI-kIDH6jpl9HhSYnDfMRCHgKS355ODHM,15204
117
95
  dagster_cloud/workspace/docker/utils.py,sha256=VjT2kiCTByZj9HIQIO34Ukqvb-3cqlMQe54wqmyNh9I,374
118
96
  dagster_cloud/workspace/ecs/__init__.py,sha256=Gys8s6kBDnfi198uRflXXRshwOKW-MBEACWqR_SCY-E,92
119
- dagster_cloud/workspace/ecs/client.py,sha256=M9JRwv7UsB7C5_-TaIfAYc2tejxp_ialQ6PB-7QzVyA,31157
120
- dagster_cloud/workspace/ecs/launcher.py,sha256=z9sasod3QFEtvQ_eVw8R1pWHLiY70MviuJAbR67E6zs,31189
97
+ dagster_cloud/workspace/ecs/client.py,sha256=sZ4qWgY8d_0kHSnUY9dUmSNY0I5SSOBfFjhbmf0hQ_o,31157
98
+ dagster_cloud/workspace/ecs/launcher.py,sha256=rkXccZlkIXCloxnnH0Grf__4juf0zbDG1-NG2bz55aw,31323
121
99
  dagster_cloud/workspace/ecs/run_launcher.py,sha256=e8Rgd3dcrHL1O_Q7UcR11JO75sxCcA8YaaOUmpk3WrU,600
122
100
  dagster_cloud/workspace/ecs/service.py,sha256=v-puyDEg2BzHA3RJqEhH8V04bUAcrYIlPCH1SThvwWw,4126
123
101
  dagster_cloud/workspace/ecs/utils.py,sha256=lWFk48l4a_pCIwP6bClQlb-KmqDS-Wl_8uHlbpGttUw,2990
124
102
  dagster_cloud/workspace/kubernetes/__init__.py,sha256=Ds-wUB4LYTOHyYH3xN_QFl7J96qU-_e7gwHPllfIl2o,99
125
- dagster_cloud/workspace/kubernetes/launcher.py,sha256=HSxyHMYTvJWEXa8RutImxluig5Vpw6TkAJ5uL3MwTSc,28378
126
- dagster_cloud/workspace/kubernetes/utils.py,sha256=2PrxCXew-KZmluVyW9jC9z_kuPcchq4b1ONv4E5UjsM,12234
103
+ dagster_cloud/workspace/kubernetes/launcher.py,sha256=-gaFgxBV8xiAU1r78AYOQGM7vbI9qn2zZj03KjZrfWI,28405
104
+ dagster_cloud/workspace/kubernetes/utils.py,sha256=agkvwi24NPpGexgxV8aJplnLYmxmmXGD5mHCe6rekGU,12285
127
105
  dagster_cloud/workspace/user_code_launcher/__init__.py,sha256=E-Izs69AHPAXD9pqd3UH46l4uKxM4Lbz7y2G4KeWzEQ,880
128
106
  dagster_cloud/workspace/user_code_launcher/process.py,sha256=6TwjlXZzBlzyQEvmGzuVAUgxe_vCye0Q3aYkPPDAshs,14315
129
- dagster_cloud/workspace/user_code_launcher/user_code_launcher.py,sha256=BWkm4stk35HrFGydB5Cp61v-OI3z1eTZsFUec1hpGSI,103700
130
- dagster_cloud/workspace/user_code_launcher/utils.py,sha256=173BNpm1ylt6euwLSnK1kpvp_cVqKJxpitetuWnXBI0,5460
131
- dagster_cloud-1.12.10.dist-info/METADATA,sha256=SSnabGRdWnfJJ5N_obt3xzPDKXZhgQ12ag_O2n5x9D8,6589
132
- dagster_cloud-1.12.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
133
- dagster_cloud-1.12.10.dist-info/top_level.txt,sha256=2hMt-U33jyCgnywNrDB9Ih0EpaVmiO6dFkYcJ7Iwx4I,14
134
- dagster_cloud-1.12.10.dist-info/RECORD,,
107
+ dagster_cloud/workspace/user_code_launcher/user_code_launcher.py,sha256=-W2kXXgpGWRwqApgAc34RdL1YnOU_Ju6cfNniddm9co,100659
108
+ dagster_cloud/workspace/user_code_launcher/utils.py,sha256=gdZEi8Z4EWLNlAljzCWBz3oJ_h8HaiVnN9_BUoCghWw,5845
109
+ dagster_cloud-1.12.12.dist-info/METADATA,sha256=ijmHfyjbFBNwlObulIz8Me9OQTeAQdy3eVipeMHuc0Q,6708
110
+ dagster_cloud-1.12.12.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
111
+ dagster_cloud-1.12.12.dist-info/top_level.txt,sha256=2hMt-U33jyCgnywNrDB9Ih0EpaVmiO6dFkYcJ7Iwx4I,14
112
+ dagster_cloud-1.12.12.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
File without changes
@@ -1,2 +0,0 @@
1
- # Metrics name will start with this prefix
2
- DAGSTER_CLOUD_AGENT_METRIC_PREFIX = "dagster_cloud"
@@ -1,23 +0,0 @@
1
- import logging
2
-
3
- from dagster import DagsterRun
4
-
5
-
6
- def extract_run_attributes(deployment_name, run: DagsterRun) -> dict[str, str]:
7
- attributes = {
8
- "job": run.job_name or "unknown",
9
- "repository": "unknown",
10
- "location": "unknown",
11
- "deployment": deployment_name,
12
- }
13
-
14
- try:
15
- if run.remote_job_origin:
16
- attributes["repository"] = (
17
- run.remote_job_origin.repository_origin.repository_name or "unknown"
18
- )
19
- attributes["location"] = run.remote_job_origin.location_name or "unknown"
20
- except Exception as e: # pylint: disable=broad-except
21
- logging.warning("Failed to extract additional run attributes", exc_info=e)
22
-
23
- return attributes
@@ -1,34 +0,0 @@
1
- from dagster import deserialize_value
2
- from dagster._core.definitions.schedule_definition import ScheduleExecutionData
3
- from dagster._core.remote_representation.external_data import ScheduleExecutionErrorSnap
4
-
5
- from dagster_cloud.opentelemetry.observers.execution_observer import ExecutionObserverInstruments
6
-
7
-
8
- def inspect_schedule_result(
9
- serialized_data_or_error: str,
10
- instruments: ExecutionObserverInstruments,
11
- attributes: dict[str, str],
12
- ) -> str:
13
- run_requests = []
14
- status: str = "unknown"
15
- try:
16
- evaluation_execution_data = deserialize_value(serialized_data_or_error)
17
- if isinstance(evaluation_execution_data, ScheduleExecutionData):
18
- run_requests = evaluation_execution_data.run_requests or []
19
- if run_requests:
20
- status = "success"
21
- else:
22
- status = "skipped"
23
- elif isinstance(evaluation_execution_data, ScheduleExecutionErrorSnap):
24
- status = "error"
25
- finally:
26
- if run_requests:
27
- meter = instruments.meter
28
- counter = meter.get_counter(
29
- name=f"{meter.name}.run_requests",
30
- description="Number of run requests triggered by schedules",
31
- )
32
- counter.add(len(run_requests), attributes)
33
-
34
- return status
@@ -1,34 +0,0 @@
1
- from dagster import deserialize_value
2
- from dagster._core.definitions.sensor_definition import SensorExecutionData
3
- from dagster._core.remote_representation.external_data import SensorExecutionErrorSnap
4
-
5
- from dagster_cloud.opentelemetry.observers.execution_observer import ExecutionObserverInstruments
6
-
7
-
8
- def inspect_sensor_result(
9
- serialized_data_or_error: str,
10
- instruments: ExecutionObserverInstruments,
11
- attributes: dict[str, str],
12
- ) -> str:
13
- run_requests = []
14
- status: str = "unknown"
15
- try:
16
- evaluation_execution_data = deserialize_value(serialized_data_or_error)
17
- if isinstance(evaluation_execution_data, SensorExecutionData):
18
- run_requests = evaluation_execution_data.run_requests or []
19
- if run_requests:
20
- status = "success"
21
- else:
22
- status = "skipped"
23
- elif isinstance(evaluation_execution_data, SensorExecutionErrorSnap):
24
- status = "error"
25
- finally:
26
- if run_requests:
27
- meter = instruments.meter
28
- counter = meter.get_counter(
29
- name=f"{meter.name}.run_requests",
30
- description="Number of run requests triggered by sensors",
31
- )
32
- counter.add(len(run_requests), attributes)
33
-
34
- return status
File without changes
@@ -1,73 +0,0 @@
1
- from dagster import BoolSource, Field, Shape, StringSource
2
-
3
- from dagster_cloud.opentelemetry.config.exporter import exporter_config_schema
4
- from dagster_cloud.opentelemetry.config.log_record_processor import log_record_processor_schema
5
- from dagster_cloud.opentelemetry.config.logging_handler import logging_handler_schema
6
- from dagster_cloud.opentelemetry.config.meter_provider import meter_provider_config_schema
7
- from dagster_cloud.opentelemetry.config.metric_reader import metric_reader_config_schema
8
-
9
-
10
- def opentelemetry_config_schema():
11
- return {
12
- "enabled": Field(
13
- BoolSource,
14
- description="Enables OpenTelemetry instrumentation.",
15
- is_required=False,
16
- default_value=True,
17
- ),
18
- "service_name": Field(
19
- StringSource,
20
- description="Name of the service to which to send telemetry",
21
- is_required=False,
22
- default_value="dagster-cloud-agent",
23
- ),
24
- "logging": Field(
25
- description="The logging configuration.",
26
- is_required=False,
27
- config=Shape(
28
- fields={
29
- "enabled": Field(
30
- BoolSource,
31
- description="Enables logging instrumentation.",
32
- is_required=False,
33
- default_value=False,
34
- ),
35
- "exporter": exporter_config_schema("logging"),
36
- "processor": log_record_processor_schema(),
37
- "handler": logging_handler_schema(),
38
- },
39
- ),
40
- ),
41
- "metrics": Field(
42
- description="The metrics configuration.",
43
- is_required=False,
44
- config=Shape(
45
- fields={
46
- "enabled": Field(
47
- BoolSource,
48
- description="Enables metrics instrumentation.",
49
- is_required=False,
50
- default_value=False,
51
- ),
52
- "exporter": exporter_config_schema("metrics"),
53
- "reader": metric_reader_config_schema(),
54
- "provider": meter_provider_config_schema(),
55
- },
56
- ),
57
- ),
58
- # TODO: Add tracing configuration when it's supported.
59
- # "tracing": Field(
60
- # description="The tracing configuration.",
61
- # config=Shape(
62
- # fields={
63
- # "enabled": Field(
64
- # BoolSource,
65
- # description="Enables tracing instrumentation.",
66
- # is_required=False,
67
- # default_value=False,
68
- # ),
69
- # "exporter": exporter_config_schema("tracing"),
70
- # },
71
- # ),
72
- # ),
73
- }
@@ -1,81 +0,0 @@
1
- from dagster import BoolSource, Enum, Field, IntSource, Map, Permissive, Shape, StringSource
2
-
3
- from dagster_cloud.opentelemetry.enum import (
4
- AggregationTemporalityEnum,
5
- CompressionEnum,
6
- LoggingExporterEnum,
7
- MetricsExporterEnum,
8
- MetricsInstrumentTypesEnum,
9
- TracingExporterEnum,
10
- ViewAggregationEnum,
11
- )
12
-
13
- # Convert Python to Dagster enums
14
- compression_enum = Enum.from_python_enum_direct_values(CompressionEnum)
15
- logging_exporter_enum = Enum.from_python_enum_direct_values(LoggingExporterEnum)
16
- metrics_exporter_enum = Enum.from_python_enum_direct_values(MetricsExporterEnum)
17
- tracing_exporter_enum = Enum.from_python_enum_direct_values(TracingExporterEnum)
18
-
19
- aggregation_temporality_enum = Enum.from_python_enum_direct_values(AggregationTemporalityEnum)
20
- metrics_instrument_types_enum = Enum.from_python_enum_direct_values(MetricsInstrumentTypesEnum)
21
- view_aggregation_enum = Enum.from_python_enum_direct_values(ViewAggregationEnum)
22
-
23
-
24
- def exporter_config_schema(pillar: str) -> Shape:
25
- """Different observability pillars have different supported exporters but share common parameters.
26
- Valid pillars are: logging, metrics, tracing.
27
- """
28
- exporter_type_field: Field
29
- exporter_extra_params: dict = {}
30
- if pillar == "logging":
31
- exporter_type_field = Field(
32
- config=logging_exporter_enum,
33
- is_required=False,
34
- default_value=LoggingExporterEnum.ConsoleLogExporter.value,
35
- )
36
- elif pillar == "metrics":
37
- exporter_type_field = Field(
38
- config=metrics_exporter_enum,
39
- is_required=False,
40
- default_value=MetricsExporterEnum.ConsoleMetricExporter.value,
41
- )
42
- exporter_extra_params = {
43
- "preferred_temporality": Field(
44
- config=Map(str, aggregation_temporality_enum), is_required=False
45
- ),
46
- "preferred_aggregation": Field(
47
- config=Map(str, view_aggregation_enum), is_required=False
48
- ),
49
- }
50
- elif pillar == "tracing":
51
- exporter_type_field = Field(
52
- config=tracing_exporter_enum,
53
- )
54
- else:
55
- raise ValueError(f"Invalid pillar: {pillar}")
56
-
57
- return Shape(
58
- description="Provide configuration for an OpenTelemetry exporter.",
59
- fields={
60
- "type": exporter_type_field,
61
- "params": Permissive(
62
- fields={
63
- # These fields are common to most exporters. No defaults are provided, to allow either
64
- # OpenTelemetry's default or environment variables to be used.
65
- # Ref: https://opentelemetry-python.readthedocs.io/en/latest/sdk/environment_variables.html
66
- "endpoint": Field(StringSource, is_required=False),
67
- "compression": Field(config=compression_enum, is_required=False),
68
- "headers": Field(
69
- description="Custom headers to send", config=Permissive(), is_required=False
70
- ),
71
- "certificate_file": Field(StringSource, is_required=False),
72
- "client_key_file": Field(StringSource, is_required=False),
73
- "client_certificate_file": Field(StringSource, is_required=False),
74
- "insecure": Field(BoolSource, is_required=False),
75
- "timeout": Field(IntSource, is_required=False),
76
- # These fields are specific an exporter.
77
- **exporter_extra_params,
78
- }
79
- ),
80
- },
81
- )
@@ -1,40 +0,0 @@
1
- from dagster import Enum, Field, IntSource, Shape
2
-
3
- from dagster_cloud.opentelemetry.enum import LogRecordProcessorEnum
4
-
5
- log_record_processor_enum = Enum.from_python_enum_direct_values(LogRecordProcessorEnum)
6
-
7
-
8
- def log_record_processor_schema() -> Shape:
9
- return Shape(
10
- description="Provide configuration for the OpenTelemetry log record processor",
11
- fields={
12
- "type": Field(
13
- config=log_record_processor_enum,
14
- description="The type of log record processor to use.",
15
- is_required=False,
16
- ),
17
- "params": Shape(
18
- description="The custom parameters for the OpenTelemetry log record processor.",
19
- fields={
20
- # Used by BatchLogRecordProcessor
21
- "schedule_delay_millis": Field(
22
- IntSource,
23
- description="The delay between batches, in milliseconds.",
24
- is_required=False,
25
- ),
26
- "export_timeout_millis": Field(
27
- IntSource,
28
- description="The timeout for exporting, in milliseconds.",
29
- is_required=False,
30
- ),
31
- "max_export_batch_size": Field(
32
- IntSource, description="The maximum batch size.", is_required=False
33
- ),
34
- "max_queue_size": Field(
35
- IntSource, description="The maximum queue size.", is_required=False
36
- ),
37
- },
38
- ),
39
- },
40
- )
@@ -1,14 +0,0 @@
1
- from dagster import Field, Shape
2
-
3
-
4
- def logging_handler_schema() -> Shape:
5
- return Shape(
6
- description="Provide configuration for the OpenTelemetry logging handler.",
7
- fields={
8
- "level": Field(
9
- str,
10
- description="The minimum logging level to capture.",
11
- is_required=False,
12
- ),
13
- },
14
- )
@@ -1,9 +0,0 @@
1
- from dagster import Field, Permissive
2
-
3
-
4
- def meter_provider_config_schema() -> Field:
5
- return Field(
6
- config=Permissive(
7
- description="Provide configuration for an OpenTelemetry meter provider.", fields={}
8
- )
9
- )
@@ -1,39 +0,0 @@
1
- from dagster import Enum, Field, IntSource, Permissive, Shape
2
-
3
- from dagster_cloud.opentelemetry.enum import MetricsReaderEnum
4
-
5
- metric_reader_enum = Enum.from_python_enum_direct_values(MetricsReaderEnum)
6
-
7
-
8
- def metric_reader_config_schema() -> Field:
9
- return Field(
10
- config=Shape(
11
- description="Provide configuration for an OpenTelemetry metric reader.",
12
- fields={
13
- "type": Field(
14
- config=metric_reader_enum,
15
- description="The type of reader to use to capture and export metrics.",
16
- is_required=False,
17
- ),
18
- "params": Field(
19
- description="Provide custom parameters for the OpenTelemetry metric reader.",
20
- is_required=False,
21
- config=Permissive(
22
- description="Provide configuration for the OpenTelemetry metric reader.",
23
- fields={
24
- "export_interval_millis": Field(
25
- IntSource,
26
- description="The interval in milliseconds at which to export metrics.",
27
- is_required=False,
28
- ),
29
- "export_timeout_millis": Field(
30
- IntSource,
31
- description="The timeout in milliseconds for exporting metrics.",
32
- is_required=False,
33
- ),
34
- },
35
- ),
36
- ),
37
- },
38
- )
39
- )