Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

853 opentelemetry metrics for server mode #944

Draft
wants to merge 6 commits into
base: develop
Choose a base branch
from

Conversation

dalpasso
Copy link
Collaborator

@dalpasso dalpasso commented Nov 30, 2023

Implemented OpenTelemetry metrics with Prometheus exporter.

Metrics implemented:

  • number of searches by product type
  • data downloaded from each provider
  • number available providers
  • number available product types

Aligning the metrics' code with EODAG's code

The functions in opentelemetry/instrumentation/eodag/__init__.py decorated with @functools.wraps must match the one of the wrapped function in EODAG.

Instructions to run the metrics

Start the OTEL collector:

docker compose -f docker-compose.yml up otel-collector

Set the following environment variables:

export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4318/"
export OTEL_METRIC_EXPORT_INTERVAL="5000"

Setting OTEL_METRIC_EXPORT_INTERVAL is optional but useful during tests. The interval is in milliseconds.

Run EODAG in server mode with the --observability option:

eodag serve-rest --observability

The metrics are available on http://localhost:8000/metrics

@dalpasso dalpasso requested a review from sbrunato November 30, 2023 08:48
@dalpasso dalpasso self-assigned this Nov 30, 2023
@dalpasso dalpasso linked an issue Nov 30, 2023 that may be closed by this pull request
Copy link
Contributor

github-actions bot commented Nov 30, 2023

Test Results

    4 files  +  1      4 suites  +1   6m 31s ⏱️ + 1m 51s
  591 tests ±  0    588 ✅ +  1   3 💤 ± 0  0 ❌  - 1 
2 364 runs  +591  2 266 ✅ +546  98 💤 +46  0 ❌  - 1 

Results for commit 1db5715. ± Comparison against base commit 2dbab73.

♻️ This comment has been updated with latest results.

Copy link
Contributor

github-actions bot commented Nov 30, 2023

Code Coverage (Ubuntu)

File Coverage
All files 63%

Minimum allowed coverage is 70%

Generated by 🐒 cobertura-action against 2fa09fc

Copy link
Contributor

github-actions bot commented Nov 30, 2023

Code Coverage (Windows)

File Coverage
All files 20%

Minimum allowed coverage is 70%

Generated by 🐒 cobertura-action against 7edfabe

@dalpasso dalpasso force-pushed the 853-opentelemetry-metrics-for-server-mode branch 2 times, most recently from 79d31be to 8cf83ef Compare December 13, 2023 13:51
@sbrunato sbrunato force-pushed the 853-opentelemetry-metrics-for-server-mode branch from 7afb97b to 08eee64 Compare December 15, 2023 07:58
@dalpasso dalpasso force-pushed the 853-opentelemetry-metrics-for-server-mode branch 2 times, most recently from 2fa09fc to a515210 Compare January 11, 2024 14:57
@alambare alambare force-pushed the 853-opentelemetry-metrics-for-server-mode branch from a515210 to 0205ce5 Compare January 13, 2024 23:56
@sbrunato sbrunato added the pending Waiting for further information / action label Mar 5, 2024
@dalpasso dalpasso force-pushed the 853-opentelemetry-metrics-for-server-mode branch from abc6c8e to 34848a5 Compare May 16, 2024 12:26
Copy link
Contributor

github-actions bot commented May 16, 2024

badge

Code Coverage (Ubuntu)

Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         321      67  79.13%   662-733, 835-886, 890
config.py                                      367      27  92.64%   82-84, 93, 101, 105-107, 175, 186, 452-454, 514-517, 560-561, 570-571, 676, 739-744, 746
crunch.py                                        5       5  0.00%    20-24
api/__init__.py                                  0       0  100.00%
api/core.py                                    769      74  90.38%   635, 679-682, 720, 764, 798, 851-856, 882, 973, 1041, 1179, 1264-1276, 1312, 1314, 1342, 1346-1357, 1370-1376, 1459-1462, 1495-1515, 1567, 1584-1588, 1600-1603, 1625-1632, 1942, 1966-1972, 2223, 2227-2230, 2241-2243, 2275
api/search_result.py                            59       4  93.22%   83, 92, 99, 113
api/product/__init__.py                          6       0  100.00%
api/product/_assets.py                          48       5  89.58%   75, 147, 155, 158-162
api/product/_product.py                        187      20  89.30%   70-72, 237-238, 313, 342, 399, 413-416, 429, 453-456, 499-505
api/product/metadata_mapping.py                680      68  90.00%   130-132, 227, 259-260, 306-307, 317-329, 331, 342, 348-360, 405-406, 443, 464-467, 490, 498-499, 575-576, 600-601, 607-610, 625-626, 775, 821, 992-997, 1124, 1138-1158, 1178, 1183, 1312, 1326, 1397, 1449, 1489-1493, 1508
api/product/drivers/__init__.py                  6       0  100.00%
api/product/drivers/base.py                      6       1  83.33%   38
plugins/__init__.py                              0       0  100.00%
plugins/base.py                                 21       2  90.48%   48, 55
plugins/manager.py                             130      12  90.77%   104-109, 159, 197, 219, 223, 247, 281-282
plugins/apis/__init__.py                         0       0  100.00%
plugins/apis/base.py                             4       0  100.00%
plugins/apis/ecmwf.py                           91       8  91.21%   149-151, 198-199, 225-227
plugins/apis/usgs.py                           180      31  82.78%   132, 234, 268, 303-305, 310, 336-337, 342, 372-379, 390-395, 417-423, 425-431, 454
plugins/authentication/__init__.py               6       1  83.33%   31
plugins/authentication/aws_auth.py              19       0  100.00%
plugins/authentication/base.py                  17       2  88.24%   34, 47
plugins/authentication/generic.py               14       2  85.71%   40, 50
plugins/authentication/header.py                19       0  100.00%
plugins/authentication/keycloak.py              48       4  91.67%   134, 160-165
plugins/authentication/oauth.py                 13       7  46.15%   32-34, 38-41
plugins/authentication/openid_connect.py       187      17  90.91%   114, 128-154, 162, 316-319, 345
plugins/authentication/qsauth.py                34       1  97.06%   83
plugins/authentication/sas_auth.py              47       1  97.87%   76
plugins/authentication/token.py                 89      16  82.02%   79, 108, 110, 133-146, 202-206
plugins/authentication/token_exchange.py        36      20  44.44%   74-80, 92-122
plugins/crunch/__init__.py                       0       0  100.00%
plugins/crunch/base.py                          10       1  90.00%   40
plugins/crunch/filter_date.py                   59      14  76.27%   49-54, 66, 75, 84, 87, 99-101, 110-112, 119
plugins/crunch/filter_latest_intersect.py       47       8  82.98%   51-52, 68, 77-80, 82, 89-92
plugins/crunch/filter_latest_tpl_name.py        31       1  96.77%   83
plugins/crunch/filter_overlap.py                66      18  72.73%   28-30, 68-71, 78-81, 87, 95, 106-122
plugins/crunch/filter_property.py               30       7  76.67%   54-59, 62-63, 79-83
plugins/download/__init__.py                     0       0  100.00%
plugins/download/aws.py                        492     163  66.87%   266, 279, 346-349, 368-372, 414-416, 420, 452-453, 459-463, 492, 524, 528, 535, 565-573, 577, 609-617, 628-630, 661-735, 753-813, 824-829, 841-854, 879, 894-896, 899, 909-917, 925-938, 948-979, 986-998, 1036, 1062, 1107-1109, 1329
plugins/download/base.py                       259      51  80.31%   137, 165, 297-298, 315-321, 352-356, 362-363, 405, 408-422, 434, 438, 502-506, 536-537, 545-562, 569-577, 579-583, 626, 648, 670, 678
plugins/download/creodias_s3.py                 17       9  47.06%   44-58
plugins/download/http.py                       535     129  75.89%   195-207, 209-210, 242-245, 306-309, 311-312, 319-324, 342-357, 374-376, 388, 436, 443-449, 467, 481, 495, 503-505, 521-526, 537, 555, 597-601, 623, 663, 708, 722-728, 757-821, 839, 869-878, 900-901, 928-933, 939, 942, 958, 975-976, 1011-1012, 1019, 1080-1086, 1141-1142, 1148, 1158, 1194, 1230, 1248-1261, 1287-1289
plugins/download/s3rest.py                     117      24  79.49%   113, 149, 156, 191, 218-225, 228-230, 234, 245-251, 259-260, 263-267, 290, 311-314
plugins/search/__init__.py                      22       0  100.00%
plugins/search/base.py                         132      13  90.15%   102, 106, 117, 276, 296, 352-353, 373, 376-384
plugins/search/build_search_result.py          189      24  87.30%   96, 137-138, 144, 155, 289-292, 321, 356-373, 422, 451, 454, 464, 481, 509, 511
plugins/search/cop_marine.py                   236      50  78.81%   55, 63-65, 75-76, 81, 86-87, 103, 105, 108, 143-145, 157-158, 200, 206, 210, 214, 227, 238-239, 247, 275, 279, 294, 298, 302, 306, 310-314, 320-323, 326-340, 357, 406-410, 415, 427
plugins/search/creodias_s3.py                   55       3  94.55%   58, 76, 110
plugins/search/csw.py                          105      81  22.86%   58-59, 63-64, 72-120, 126-139, 147-179, 197-238
plugins/search/data_request_search.py          202      69  65.84%   90-93, 109, 120, 124-125, 136, 141, 146, 153, 166-169, 223-224, 228, 238-244, 249, 275-278, 286-297, 314, 316, 323-326, 328-329, 347-351, 384, 394, 405, 418, 424-439, 444
plugins/search/qssearch.py                     718      96  86.63%   390, 394-400, 408-409, 515-527, 571, 587, 597, 616-631, 668-671, 742-743, 791, 810, 817, 829, 886, 907, 910-911, 920-921, 930-931, 940-941, 968, 1039-1044, 1048-1057, 1091, 1113, 1173, 1222, 1286, 1289-1290, 1372-1376, 1438, 1441, 1447-1448, 1469, 1496-1508, 1515, 1547-1549, 1559-1565, 1595, 1618, 1633, 1649, 1724-1727, 1732-1735, 1762-1763, 1778
plugins/search/static_stac_search.py            72      10  86.11%   98-125, 141, 154
rest/__init__.py                                 4       2  50.00%   21-22
rest/cache.py                                   33       7  78.79%   35-37, 53-55, 59, 68
rest/config.py                                  26       0  100.00%
rest/constants.py                                6       0  100.00%
rest/core.py                                   251      64  74.50%   216-217, 273, 281, 298-316, 331-369, 460, 502-533, 680, 687-735
rest/errors.py                                  67       5  92.54%   106, 116, 127, 140-141
rest/server.py                                 188      24  87.23%   89, 112-114, 275-280, 308, 493-495, 512-517, 546, 548, 552-553, 557-558
rest/stac.py                                   319      63  80.25%   306, 328, 380-383, 410-437, 468-470, 493, 525-526, 608-648, 670-686, 778-782, 789, 843-844, 905, 995-997
rest/types/__init__.py                           0       0  100.00%
rest/types/collections_search.py                13      13  0.00%    18-44
rest/types/eodag_search.py                     176       5  97.16%   225-229, 282, 285, 353
rest/types/queryables.py                        56       1  98.21%   164
rest/types/stac_search.py                      126       7  94.44%   129, 175, 190-192, 200, 204
rest/utils/__init__.py                          93      12  87.10%   108-109, 128-130, 182, 192-206
rest/utils/cql_evaluate.py                      48       5  89.58%   69, 76, 90, 97, 105
rest/utils/observability.py                     33      33  0.00%    27-133
rest/utils/rfc3339.py                           23       3  86.96%   48, 60, 62
types/__init__.py                              114      14  87.72%   53, 70, 129-132, 199, 213-222, 232, 253, 266
types/bbox.py                                   43      19  55.81%   46-61, 72-74, 85-87, 99-101, 113-115, 123
types/download_args.py                           9       0  100.00%
types/queryables.py                             81       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
types/whoosh.py                                 15       0  100.00%
utils/__init__.py                              500      37  92.60%   85, 90, 194-195, 204-231, 234, 248, 328-332, 406-410, 429-431, 510, 525, 561-562, 926-929, 937-938, 976-977, 1148
utils/constraints.py                           119      38  68.07%   62, 89-98, 139, 144, 148, 159, 182-184, 194, 208-224, 233-244
utils/exceptions.py                             40       2  95.00%   98-99
utils/import_system.py                          28      19  32.14%   64-78, 89-99
utils/logging.py                                28       1  96.43%   41
utils/notebook.py                               44      23  47.73%   25-29, 36-41, 58-62, 72-78, 83-87
utils/repr.py                                   30       8  73.33%   36, 38, 42, 76, 94-101
utils/requests.py                               55      11  80.00%   64, 86, 88, 90, 92, 94, 110, 118-120, 128
utils/rest.py                                   36       1  97.22%   55
utils/stac_reader.py                           111      45  59.46%   56-57, 63-85, 95-97, 101, 137, 153-156, 203-212, 222-252
TOTAL                                         9596    1646  82.85%

Diff against develop

Filename                       Stmts    Miss  Cover
---------------------------  -------  ------  --------
cli.py                            +9      +8  -1.96%
plugins/download/aws.py           +1       0  +0.07%
plugins/download/base.py          +6       0  +0.47%
plugins/download/http.py          +1       0  +0.05%
plugins/download/s3rest.py        +1       0  +0.18%
rest/utils/observability.py      +33     +33  +100.00%
TOTAL                            +51     +41  -0.33%

Results for commit: fb7e7e6

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

Copy link
Contributor

github-actions bot commented May 16, 2024

badge

Code Coverage (Windows)

Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         321      67  79.13%   662-733, 835-886, 890
config.py                                      367      28  92.37%   82-84, 93, 101, 105-107, 175, 186, 452-454, 514-517, 560-561, 570-571, 676, 707, 739-744, 746
crunch.py                                        5       5  0.00%    20-24
api/__init__.py                                  0       0  100.00%
api/core.py                                    769      74  90.38%   635, 679-682, 720, 764, 798, 851-856, 882, 973, 1041, 1179, 1264-1276, 1312, 1314, 1342, 1346-1357, 1370-1376, 1459-1462, 1495-1515, 1567, 1584-1588, 1600-1603, 1625-1632, 1942, 1966-1972, 2223, 2227-2230, 2241-2243, 2275
api/search_result.py                            59       4  93.22%   83, 92, 99, 113
api/product/__init__.py                          6       0  100.00%
api/product/_assets.py                          48       5  89.58%   75, 147, 155, 158-162
api/product/_product.py                        187      20  89.30%   70-72, 237-238, 313, 342, 399, 413-416, 429, 453-456, 499-505
api/product/metadata_mapping.py                680      68  90.00%   130-132, 227, 259-260, 306-307, 317-329, 331, 342, 348-360, 405-406, 443, 464-467, 490, 498-499, 575-576, 600-601, 607-610, 625-626, 775, 821, 992-997, 1124, 1138-1158, 1178, 1183, 1312, 1326, 1397, 1449, 1489-1493, 1508
api/product/drivers/__init__.py                  6       0  100.00%
api/product/drivers/base.py                      6       1  83.33%   38
plugins/__init__.py                              0       0  100.00%
plugins/base.py                                 21       3  85.71%   48, 55, 68
plugins/manager.py                             130      12  90.77%   104-109, 159, 197, 219, 223, 247, 281-282
plugins/apis/__init__.py                         0       0  100.00%
plugins/apis/base.py                             4       0  100.00%
plugins/apis/ecmwf.py                           91       8  91.21%   149-151, 198-199, 225-227
plugins/apis/usgs.py                           180      31  82.78%   132, 234, 268, 303-305, 310, 336-337, 342, 372-379, 390-395, 417-423, 425-431, 454
plugins/authentication/__init__.py               6       1  83.33%   31
plugins/authentication/aws_auth.py              19       0  100.00%
plugins/authentication/base.py                  17       2  88.24%   34, 47
plugins/authentication/generic.py               14       2  85.71%   40, 50
plugins/authentication/header.py                19       0  100.00%
plugins/authentication/keycloak.py              48       4  91.67%   134, 160-165
plugins/authentication/oauth.py                 13       7  46.15%   32-34, 38-41
plugins/authentication/openid_connect.py       187      17  90.91%   114, 128-154, 162, 316-319, 345
plugins/authentication/qsauth.py                34       1  97.06%   83
plugins/authentication/sas_auth.py              47       1  97.87%   76
plugins/authentication/token.py                 89      16  82.02%   79, 108, 110, 133-146, 202-206
plugins/authentication/token_exchange.py        36      20  44.44%   74-80, 92-122
plugins/crunch/__init__.py                       0       0  100.00%
plugins/crunch/base.py                          10       1  90.00%   40
plugins/crunch/filter_date.py                   59      14  76.27%   49-54, 66, 75, 84, 87, 99-101, 110-112, 119
plugins/crunch/filter_latest_intersect.py       47      33  29.79%   48-53, 66-111
plugins/crunch/filter_latest_tpl_name.py        31       1  96.77%   83
plugins/crunch/filter_overlap.py                66      18  72.73%   28-30, 68-71, 78-81, 87, 95, 106-122
plugins/crunch/filter_property.py               30       7  76.67%   54-59, 62-63, 79-83
plugins/download/__init__.py                     0       0  100.00%
plugins/download/aws.py                        492     163  66.87%   266, 279, 346-349, 368-372, 414-416, 420, 452-453, 459-463, 492, 524, 528, 535, 565-573, 577, 609-617, 628-630, 661-735, 753-813, 824-829, 841-854, 879, 894-896, 899, 909-917, 925-938, 948-979, 986-998, 1036, 1062, 1107-1109, 1329
plugins/download/base.py                       259      53  79.54%   137, 165, 232-234, 297-298, 315-321, 352-356, 362-363, 405, 408-422, 434, 438, 502-506, 536-537, 545-562, 569-577, 579-583, 626, 648, 670, 678
plugins/download/creodias_s3.py                 17       9  47.06%   44-58
plugins/download/http.py                       535     130  75.70%   195-207, 209-210, 242-245, 306-309, 311-312, 319-324, 342-357, 374-376, 388, 436, 443-449, 467, 481, 495, 503-505, 521-526, 537, 555, 597-601, 623, 663, 708, 722-728, 757-821, 839, 869-878, 900-901, 928-933, 939, 942, 958, 975-976, 989, 1011-1012, 1019, 1080-1086, 1141-1142, 1148, 1158, 1194, 1230, 1248-1261, 1287-1289
plugins/download/s3rest.py                     117      24  79.49%   113, 149, 156, 191, 218-225, 228-230, 234, 245-251, 259-260, 263-267, 290, 311-314
plugins/search/__init__.py                      22       0  100.00%
plugins/search/base.py                         132      14  89.39%   102, 106, 117, 276, 296, 352-353, 373, 376-384, 386
plugins/search/build_search_result.py          189      31  83.60%   96, 137-138, 144, 155, 289-292, 321, 356-373, 422, 451, 454, 464, 481, 501-516
plugins/search/cop_marine.py                   236      50  78.81%   55, 63-65, 75-76, 81, 86-87, 103, 105, 108, 143-145, 157-158, 200, 206, 210, 214, 227, 238-239, 247, 275, 279, 294, 298, 302, 306, 310-314, 320-323, 326-340, 357, 406-410, 415, 427
plugins/search/creodias_s3.py                   55       3  94.55%   58, 76, 110
plugins/search/csw.py                          105      81  22.86%   58-59, 63-64, 72-120, 126-139, 147-179, 197-238
plugins/search/data_request_search.py          202      69  65.84%   90-93, 109, 120, 124-125, 136, 141, 146, 153, 166-169, 223-224, 228, 238-244, 249, 275-278, 286-297, 314, 316, 323-326, 328-329, 347-351, 384, 394, 405, 418, 424-439, 444
plugins/search/qssearch.py                     718     125  82.59%   390, 394-400, 408-409, 515-527, 571, 574, 587, 597, 616-631, 668-671, 742-743, 791, 810, 817, 829, 886, 907, 910-911, 920-921, 930-931, 940-941, 968, 1039-1044, 1048-1057, 1091, 1113, 1173, 1222, 1286, 1289-1290, 1372-1376, 1438, 1441, 1447-1448, 1469, 1496-1508, 1515, 1547-1549, 1559-1565, 1595, 1618, 1633, 1649, 1707-1807
plugins/search/static_stac_search.py            72      10  86.11%   98-125, 141, 154
rest/__init__.py                                 4       2  50.00%   21-22
rest/cache.py                                   33      22  33.33%   35-37, 44-70
rest/config.py                                  26       1  96.15%   36
rest/constants.py                                6       0  100.00%
rest/core.py                                   251     139  44.62%   162, 164, 166, 169-170, 184-194, 206-207, 209-210, 216-217, 220, 223, 264-318, 331-369, 400-434, 449-465, 481-490, 502-533, 550, 592-641, 680, 687-735
rest/errors.py                                  67      47  29.85%   60, 65-100, 105-108, 115-118, 126-144, 152-157, 172-178
rest/server.py                                 188     188  0.00%    18-571
rest/stac.py                                   319      68  78.68%   240, 306, 328, 380-383, 410-437, 468-470, 493, 525-526, 608-648, 670-686, 713, 778-782, 789, 843-844, 850, 905, 943, 976, 995-997
rest/types/__init__.py                           0       0  100.00%
rest/types/collections_search.py                13      13  0.00%    18-44
rest/types/eodag_search.py                     176      16  90.91%   225-229, 262-264, 282, 285, 291, 295, 353, 370-380
rest/types/queryables.py                        56      13  76.79%   51-52, 59-60, 67-68, 94-99, 108-109, 164
rest/types/stac_search.py                      126      11  91.27%   127-129, 175, 190-192, 200, 204, 252, 255
rest/utils/__init__.py                          93      30  67.74%   79-85, 105, 108-109, 128-130, 143, 150, 175-183, 190-211
rest/utils/cql_evaluate.py                      48       5  89.58%   69, 76, 90, 97, 105
rest/utils/observability.py                     33      33  0.00%    27-133
rest/utils/rfc3339.py                           23       5  78.26%   43-44, 48, 60, 62
types/__init__.py                              114      39  65.79%   53, 66-70, 81-93, 120-122, 129-132, 172, 199, 209-225, 230, 232, 253, 258, 266, 276
types/bbox.py                                   43      19  55.81%   46-61, 72-74, 85-87, 99-101, 113-115, 123
types/download_args.py                           9       0  100.00%
types/queryables.py                             81       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
types/whoosh.py                                 15       0  100.00%
utils/__init__.py                              500      37  92.60%   85, 90, 194-195, 204-231, 234, 248, 328-332, 406-410, 429-431, 510, 525, 561-562, 926-929, 937-938, 976-977, 1148
utils/constraints.py                           119      38  68.07%   62, 89-98, 139, 144, 148, 159, 182-184, 194, 208-224, 233-244
utils/exceptions.py                             40       2  95.00%   98-99
utils/import_system.py                          28      19  32.14%   64-78, 89-99
utils/logging.py                                28       1  96.43%   41
utils/notebook.py                               44      23  47.73%   25-29, 36-41, 58-62, 72-78, 83-87
utils/repr.py                                   30       8  73.33%   36, 38, 42, 76, 94-101
utils/requests.py                               55      11  80.00%   64, 86, 88, 90, 92, 94, 110, 118-120, 128
utils/rest.py                                   36       1  97.22%   55
utils/stac_reader.py                           111      45  59.46%   56-57, 63-85, 95-97, 101, 137, 153-156, 203-212, 222-252
TOTAL                                         9596    2087  78.25%

Diff against develop

Filename                       Stmts    Miss  Cover
---------------------------  -------  ------  --------
cli.py                            +9      +8  -1.96%
plugins/download/aws.py           +1       0  +0.07%
plugins/download/base.py          +6       0  +0.49%
plugins/download/http.py          +1       0  +0.04%
plugins/download/s3rest.py        +1       0  +0.18%
rest/utils/observability.py      +33     +33  +100.00%
TOTAL                            +51     +41  -0.31%

Results for commit: fb7e7e6

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

@dalpasso dalpasso force-pushed the 853-opentelemetry-metrics-for-server-mode branch from 0c83fc7 to b87329b Compare May 16, 2024 16:10
@dalpasso dalpasso requested a review from alambare May 22, 2024 07:49
@dalpasso dalpasso marked this pull request as ready for review May 22, 2024 07:49
@dalpasso
Copy link
Collaborator Author

dalpasso commented May 22, 2024

Instructions to run the metrics.

Start the OTEL collector:

docker compose -f docker-compose.yml up otel-collector

Set the following environment variables:

export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4318/"
export OTEL_METRIC_EXPORT_INTERVAL="5000"

Run EODAG in server mode with the --observability option:

eodag serve-rest --observability

The metrics are available on http://localhost:8000/metrics

charts/eodag-server/templates/deployment.yaml Show resolved Hide resolved
eodag/rest/server.py Outdated Show resolved Hide resolved
eodag/utils/instrumentation/__init__.py Outdated Show resolved Hide resolved
eodag/utils/instrumentation/eodag/__init__.py Outdated Show resolved Hide resolved
eodag/utils/instrumentation/eodag/package.py Outdated Show resolved Hide resolved
@dalpasso dalpasso force-pushed the 853-opentelemetry-metrics-for-server-mode branch from ae8bba6 to 96e5a8a Compare May 28, 2024 11:26
@dalpasso dalpasso marked this pull request as draft June 5, 2024 08:38
@dalpasso dalpasso force-pushed the 853-opentelemetry-metrics-for-server-mode branch from a734773 to 1745179 Compare June 10, 2024 09:46
@dalpasso dalpasso force-pushed the 853-opentelemetry-metrics-for-server-mode branch 2 times, most recently from f318379 to eb85724 Compare June 19, 2024 07:06
@alambare alambare force-pushed the 853-opentelemetry-metrics-for-server-mode branch 2 times, most recently from 7d450d6 to bb1ca21 Compare June 21, 2024 04:48
@alambare alambare force-pushed the 853-opentelemetry-metrics-for-server-mode branch 2 times, most recently from 73b94a0 to f862a02 Compare July 11, 2024 16:12
@jlahovnik jlahovnik force-pushed the 853-opentelemetry-metrics-for-server-mode branch from f862a02 to de91095 Compare August 27, 2024 12:53
@alambare alambare dismissed their stale review August 27, 2024 13:14

obsolet: changes done

@alambare alambare force-pushed the 853-opentelemetry-metrics-for-server-mode branch from de91095 to fb7e7e6 Compare September 24, 2024 14:56
@alambare alambare force-pushed the 853-opentelemetry-metrics-for-server-mode branch from fb7e7e6 to f8e3679 Compare November 22, 2024 21:24
Copy link
Contributor

github-actions bot commented Nov 22, 2024

badge

Code Coverage (Ubuntu)

Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         332      72  78.31%   62-63, 87, 681-756, 858-909, 913
config.py                                      430      27  93.72%   80-82, 91, 99, 103-105, 176, 187, 692-694, 807-810, 853-854, 863-864, 969, 1032-1037, 1039
crunch.py                                        5       5  0.00%    20-24
api/__init__.py                                  0       0  100.00%
api/core.py                                    783      74  90.55%   317-318, 368, 658, 702-705, 743, 787, 821, 866-871, 897, 988, 1056, 1194, 1279-1291, 1327, 1329, 1357, 1361-1372, 1385-1391, 1474-1477, 1510-1530, 1582, 1599-1603, 1615-1618, 1954, 1978-1984, 2235, 2239-2243, 2252-2254, 2298-2299, 2328-2329
api/search_result.py                            58       4  93.10%   82, 91, 98, 112
api/product/__init__.py                          6       0  100.00%
api/product/_assets.py                          48       5  89.58%   75, 147, 155, 158-162
api/product/_product.py                        188      20  89.36%   70-72, 238-239, 314, 343, 400, 414-417, 430, 454-457, 500-506
api/product/metadata_mapping.py                695      76  89.06%   119-121, 218, 250-251, 297-298, 308-320, 322, 333, 339-351, 398-399, 436, 457-460, 483, 491-492, 578-579, 603-604, 610-613, 628-629, 778, 824, 977, 986-990, 1007-1012, 1139, 1153-1173, 1193, 1198, 1327, 1341, 1366, 1412, 1464, 1487-1488, 1504-1508, 1524, 1532
api/product/drivers/__init__.py                  6       0  100.00%
api/product/drivers/base.py                      6       1  83.33%   38
plugins/__init__.py                              0       0  100.00%
plugins/base.py                                 21       2  90.48%   48, 55
plugins/manager.py                             172      14  91.86%   106-111, 161, 199, 221, 225, 249, 389-392, 404-405
plugins/apis/__init__.py                         0       0  100.00%
plugins/apis/base.py                             4       0  100.00%
plugins/apis/ecmwf.py                           97      10  89.69%   171-173, 220-221, 247-249, 302-303
plugins/apis/usgs.py                           180      26  85.56%   156, 258, 292, 327-329, 334, 360-361, 366, 396-403, 414-419, 441-447, 478
plugins/authentication/__init__.py               6       1  83.33%   31
plugins/authentication/aws_auth.py              20       0  100.00%
plugins/authentication/base.py                  17       2  88.24%   45, 58
plugins/authentication/generic.py               14       2  85.71%   51, 61
plugins/authentication/header.py                19       0  100.00%
plugins/authentication/keycloak.py              46       7  84.78%   151-154, 175-180
plugins/authentication/oauth.py                 13       7  46.15%   43-45, 49-52
plugins/authentication/openid_connect.py       206      27  86.89%   80-81, 93-111, 149, 155-183, 191, 323-326, 352
plugins/authentication/qsauth.py                34       1  97.06%   91
plugins/authentication/sas_auth.py              47       1  97.87%   76
plugins/authentication/token.py                100      16  84.00%   141, 170, 172, 207-220, 276-280
plugins/authentication/token_exchange.py        36      14  61.11%   75, 92-120
plugins/crunch/__init__.py                       0       0  100.00%
plugins/crunch/base.py                          10       1  90.00%   43
plugins/crunch/filter_date.py                   59      14  76.27%   52-57, 69, 78, 87, 90, 102-104, 113-115, 122
plugins/crunch/filter_latest_intersect.py       47       8  82.98%   52-53, 69, 78-81, 83, 90-93
plugins/crunch/filter_latest_tpl_name.py        31       1  96.77%   83
plugins/crunch/filter_overlap.py                66      18  72.73%   28-30, 66-69, 76-79, 85, 93, 104-120
plugins/crunch/filter_property.py               30       5  83.33%   55-60, 63-64
plugins/download/__init__.py                     0       0  100.00%
plugins/download/aws.py                        490     162  66.94%   269, 282, 349-352, 366-370, 412-414, 418, 450-451, 457-461, 491, 523, 527, 534, 564-572, 576, 608-616, 627-629, 660-734, 752-810, 821-826, 838-851, 876, 891-893, 896, 906-914, 922-935, 945-967, 974-986, 1024, 1050, 1095-1097, 1317
plugins/download/base.py                       253      42  83.40%   127, 155, 235-238, 291-292, 340-344, 350-351, 393, 396-410, 422, 426, 490-494, 524-525, 550-558, 560-564, 607, 629, 651, 659
plugins/download/creodias_s3.py                 25       9  64.00%   55-69
plugins/download/http.py                       529      95  82.04%   227, 323-326, 329, 336-341, 359-374, 391, 403, 451, 458-464, 482, 496, 510, 518-520, 536-541, 552, 570, 606-609, 638, 642, 662, 739, 758-769, 777-782, 792-809, 827, 857-866, 902, 927-928, 947-952, 958, 961, 978, 981, 996-997, 1032, 1094, 1109, 1168-1169, 1175, 1185, 1221, 1257, 1277, 1312-1314
plugins/download/s3rest.py                     116      24  79.31%   119, 153, 160, 195, 222-229, 232-234, 238, 249-255, 263-264, 267-271, 294, 315-318
plugins/search/__init__.py                      22       0  100.00%
plugins/search/base.py                         145      11  92.41%   101, 105, 129-135, 275, 295, 428
plugins/search/build_search_result.py          357      49  86.27%   239, 267-268, 304, 307, 381-384, 473-490, 518, 567, 569, 594-601, 633-635, 639, 661, 696, 747, 776-777, 792-807, 850, 875, 878, 881, 889, 1001-1002, 1008, 1019, 1077, 1128
plugins/search/cop_marine.py                   244      47  80.74%   56, 64-66, 76-77, 82, 87-88, 104, 106, 109, 175-176, 228, 234, 238, 242, 255, 266-267, 275, 303, 307, 322, 326, 330, 334, 338-342, 348-351, 354-368, 385, 434-438, 443, 455
plugins/search/creodias_s3.py                   57       3  94.74%   59, 77, 116
plugins/search/csw.py                          105      81  22.86%   98-99, 103-104, 112-160, 166-179, 187-219, 237-278
plugins/search/data_request_search.py          202      69  65.84%   188-191, 207, 218, 222-223, 234, 239, 244, 251, 264-267, 321-322, 326, 336-342, 347, 373-376, 384-395, 412, 414, 421-424, 426-427, 445-449, 482, 492, 503, 516, 522-537, 542
plugins/search/qssearch.py                     733      89  87.86%   449, 507, 521, 525-531, 559-563, 676-688, 733-736, 807-808, 856, 875, 882, 894, 951, 972, 975-976, 985-986, 995-996, 1005-1006, 1033, 1108-1113, 1117-1126, 1160, 1182, 1259, 1349, 1434-1435, 1445, 1522-1526, 1588, 1591, 1597-1598, 1619, 1647-1659, 1666, 1698-1700, 1710-1716, 1746, 1769, 1774-1775, 1790, 1806, 1891-1894, 1899-1902, 1911, 1941-1945, 1951
plugins/search/static_stac_search.py            75      13  82.67%   98-124, 140, 153
rest/__init__.py                                 4       2  50.00%   21-22
rest/cache.py                                   33       7  78.79%   35-37, 53-55, 59, 68
rest/config.py                                  25       0  100.00%
rest/constants.py                                6       0  100.00%
rest/core.py                                   260      66  74.62%   258, 266, 284-301, 316-352, 446, 483-522, 705, 712-765
rest/errors.py                                  69       5  92.75%   106, 116, 127, 143-144
rest/server.py                                 192      24  87.50%   86, 109-111, 285-290, 318, 514-516, 533-538, 567, 569, 573-574, 578-579
rest/stac.py                                   319      63  80.25%   308, 330, 382-385, 412-439, 470-472, 495, 527-528, 610-650, 672-688, 780-784, 791, 845-846, 907, 997-999
rest/types/__init__.py                           0       0  100.00%
rest/types/collections_search.py                13      13  0.00%    18-44
rest/types/eodag_search.py                     180       6  96.67%   225-229, 282, 285, 353, 385
rest/types/queryables.py                        57       5  91.23%   93-98, 162
rest/types/stac_search.py                      125       7  94.40%   128, 174, 189-191, 199, 203
rest/utils/__init__.py                          94      12  87.23%   101-102, 121-123, 175, 185-199
rest/utils/cql_evaluate.py                      48       5  89.58%   69, 76, 90, 97, 105
rest/utils/observability.py                     33      33  0.00%    27-133
rest/utils/rfc3339.py                           23       3  86.96%   48, 60, 62
types/__init__.py                              133      42  68.42%   63, 76-80, 91-103, 131-133, 140-145, 186, 205, 227, 237-253, 258, 260, 282, 287, 295, 305
types/bbox.py                                   43      19  55.81%   46-61, 72-74, 85-87, 99-101, 113-115, 123
types/download_args.py                           9       0  100.00%
types/queryables.py                            108       1  99.07%   63
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
types/whoosh.py                                 81      16  80.25%   129-132, 136-143, 155-161, 174-176
utils/__init__.py                              533      48  90.99%   81, 197-198, 207-234, 237, 252, 332-336, 409-413, 432-434, 447-461, 540, 555, 595-596, 625, 1000-1003, 1011-1012, 1050-1051, 1098-1099, 1233
utils/exceptions.py                             46       0  100.00%
utils/import_system.py                          28      19  32.14%   64-78, 89-99
utils/logging.py                                28       1  96.43%   41
utils/notebook.py                               44      23  47.73%   25-29, 36-41, 58-62, 72-78, 83-87
utils/repr.py                                   38       8  78.95%   51, 53, 57, 98, 122-129
utils/requests.py                               55      29  47.27%   51-52, 64, 85-96, 107-124, 128
utils/rest.py                                   36       1  97.22%   55
utils/stac_reader.py                           111      45  59.46%   56-57, 63-85, 95-97, 101, 137, 153-156, 203-212, 222-252
TOTAL                                        10037    1676  83.30%

Diff against develop

Filename                       Stmts    Miss  Cover
---------------------------  -------  ------  --------
cli.py                            +9      +8  -1.88%
rest/utils/observability.py      +33     +33  +100.00%
TOTAL                            +42     +41  -0.34%

Results for commit: 1db5715

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

Copy link
Contributor

github-actions bot commented Nov 22, 2024

badge

Code Coverage (Windows)

Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         332      72  78.31%   62-63, 87, 681-756, 858-909, 913
config.py                                      430      28  93.49%   80-82, 91, 99, 103-105, 176, 187, 692-694, 807-810, 853-854, 863-864, 969, 1000, 1032-1037, 1039
crunch.py                                        5       5  0.00%    20-24
api/__init__.py                                  0       0  100.00%
api/core.py                                    783      74  90.55%   317-318, 368, 658, 702-705, 743, 787, 821, 866-871, 897, 988, 1056, 1194, 1279-1291, 1327, 1329, 1357, 1361-1372, 1385-1391, 1474-1477, 1510-1530, 1582, 1599-1603, 1615-1618, 1954, 1978-1984, 2235, 2239-2243, 2252-2254, 2298-2299, 2328-2329
api/search_result.py                            58       4  93.10%   82, 91, 98, 112
api/product/__init__.py                          6       0  100.00%
api/product/_assets.py                          48       5  89.58%   75, 147, 155, 158-162
api/product/_product.py                        188      20  89.36%   70-72, 238-239, 314, 343, 400, 414-417, 430, 454-457, 500-506
api/product/metadata_mapping.py                695      77  88.92%   119-121, 218, 250-251, 297-298, 308-320, 322, 333, 339-351, 398-399, 436, 457-460, 483, 491-492, 578-579, 603-604, 610-613, 628-629, 778, 824, 977, 986-990, 1007-1012, 1139, 1153-1173, 1193, 1198, 1327, 1341, 1366, 1412, 1464, 1487-1488, 1491, 1504-1508, 1524, 1532
api/product/drivers/__init__.py                  6       0  100.00%
api/product/drivers/base.py                      6       1  83.33%   38
plugins/__init__.py                              0       0  100.00%
plugins/base.py                                 21       3  85.71%   48, 55, 68
plugins/manager.py                             172      14  91.86%   106-111, 161, 199, 221, 225, 249, 389-392, 404-405
plugins/apis/__init__.py                         0       0  100.00%
plugins/apis/base.py                             4       0  100.00%
plugins/apis/ecmwf.py                           97      10  89.69%   171-173, 220-221, 247-249, 302-303
plugins/apis/usgs.py                           180      26  85.56%   156, 258, 292, 327-329, 334, 360-361, 366, 396-403, 414-419, 441-447, 478
plugins/authentication/__init__.py               6       1  83.33%   31
plugins/authentication/aws_auth.py              20       0  100.00%
plugins/authentication/base.py                  17       2  88.24%   45, 58
plugins/authentication/generic.py               14       2  85.71%   51, 61
plugins/authentication/header.py                19       0  100.00%
plugins/authentication/keycloak.py              46       7  84.78%   151-154, 175-180
plugins/authentication/oauth.py                 13       7  46.15%   43-45, 49-52
plugins/authentication/openid_connect.py       206      27  86.89%   80-81, 93-111, 149, 155-183, 191, 323-326, 352
plugins/authentication/qsauth.py                34       1  97.06%   91
plugins/authentication/sas_auth.py              47       1  97.87%   76
plugins/authentication/token.py                100      16  84.00%   141, 170, 172, 207-220, 276-280
plugins/authentication/token_exchange.py        36      14  61.11%   75, 92-120
plugins/crunch/__init__.py                       0       0  100.00%
plugins/crunch/base.py                          10       1  90.00%   43
plugins/crunch/filter_date.py                   59      14  76.27%   52-57, 69, 78, 87, 90, 102-104, 113-115, 122
plugins/crunch/filter_latest_intersect.py       47      33  29.79%   49-54, 67-112
plugins/crunch/filter_latest_tpl_name.py        31       1  96.77%   83
plugins/crunch/filter_overlap.py                66      18  72.73%   28-30, 66-69, 76-79, 85, 93, 104-120
plugins/crunch/filter_property.py               30       5  83.33%   55-60, 63-64
plugins/download/__init__.py                     0       0  100.00%
plugins/download/aws.py                        490     162  66.94%   269, 282, 349-352, 366-370, 412-414, 418, 450-451, 457-461, 491, 523, 527, 534, 564-572, 576, 608-616, 627-629, 660-734, 752-810, 821-826, 838-851, 876, 891-893, 896, 906-914, 922-935, 945-967, 974-986, 1024, 1050, 1095-1097, 1317
plugins/download/base.py                       253      44  82.61%   127, 155, 222-224, 235-238, 291-292, 340-344, 350-351, 393, 396-410, 422, 426, 490-494, 524-525, 550-558, 560-564, 607, 629, 651, 659
plugins/download/creodias_s3.py                 25       9  64.00%   55-69
plugins/download/http.py                       529      95  82.04%   227, 323-326, 329, 336-341, 359-374, 391, 403, 451, 458-464, 482, 496, 510, 518-520, 536-541, 552, 570, 606-609, 638, 642, 662, 739, 758-769, 777-782, 792-809, 827, 857-866, 902, 927-928, 947-952, 958, 961, 978, 981, 996-997, 1032, 1094, 1109, 1168-1169, 1175, 1185, 1221, 1257, 1277, 1312-1314
plugins/download/s3rest.py                     116      24  79.31%   119, 153, 160, 195, 222-229, 232-234, 238, 249-255, 263-264, 267-271, 294, 315-318
plugins/search/__init__.py                      22       0  100.00%
plugins/search/base.py                         145      11  92.41%   101, 105, 129-135, 275, 295, 428
plugins/search/build_search_result.py          357      50  85.99%   239, 267-268, 304, 307, 381-384, 473-490, 518, 567, 569, 594-601, 633-635, 639, 661, 696, 747, 761, 776-777, 792-807, 850, 875, 878, 881, 889, 1001-1002, 1008, 1019, 1077, 1128
plugins/search/cop_marine.py                   244      47  80.74%   56, 64-66, 76-77, 82, 87-88, 104, 106, 109, 175-176, 228, 234, 238, 242, 255, 266-267, 275, 303, 307, 322, 326, 330, 334, 338-342, 348-351, 354-368, 385, 434-438, 443, 455
plugins/search/creodias_s3.py                   57       3  94.74%   59, 77, 116
plugins/search/csw.py                          105      81  22.86%   98-99, 103-104, 112-160, 166-179, 187-219, 237-278
plugins/search/data_request_search.py          202      69  65.84%   188-191, 207, 218, 222-223, 234, 239, 244, 251, 264-267, 321-322, 326, 336-342, 347, 373-376, 384-395, 412, 414, 421-424, 426-427, 445-449, 482, 492, 503, 516, 522-537, 542
plugins/search/qssearch.py                     733     125  82.95%   449, 507, 521, 525-531, 559-563, 676-688, 733-736, 807-808, 856, 875, 882, 894, 951, 972, 975-976, 985-986, 995-996, 1005-1006, 1033, 1108-1113, 1117-1126, 1160, 1182, 1259, 1349, 1434-1435, 1445, 1522-1526, 1588, 1591, 1597-1598, 1619, 1647-1659, 1666, 1698-1700, 1710-1716, 1746, 1769, 1774-1775, 1790, 1806, 1874-1984
plugins/search/static_stac_search.py            75      13  82.67%   98-124, 140, 153
rest/__init__.py                                 4       2  50.00%   21-22
rest/cache.py                                   33      22  33.33%   35-37, 44-70
rest/config.py                                  25       1  96.00%   35
rest/constants.py                                6       0  100.00%
rest/core.py                                   260     153  41.15%   157, 159, 161, 164-165, 179-189, 198-199, 205, 208, 249-303, 316-352, 383-420, 435-451, 467-476, 483-522, 539, 581-666, 705, 712-765
rest/errors.py                                  69      49  28.99%   60, 65-100, 105-108, 115-118, 126-147, 155-160, 175-181
rest/server.py                                 192     192  0.00%    18-592
rest/stac.py                                   319      68  78.68%   242, 308, 330, 382-385, 412-439, 470-472, 495, 527-528, 610-650, 672-688, 715, 780-784, 791, 845-846, 852, 907, 945, 978, 997-999
rest/types/__init__.py                           0       0  100.00%
rest/types/collections_search.py                13      13  0.00%    18-44
rest/types/eodag_search.py                     180      20  88.89%   225-229, 262-264, 282, 285, 291, 295, 353, 371-386
rest/types/queryables.py                        57      13  77.19%   50-51, 58-59, 66-67, 93-98, 107-108, 162
rest/types/stac_search.py                      125      11  91.20%   126-128, 174, 189-191, 199, 203, 251, 254
rest/utils/__init__.py                          94      30  68.09%   72-78, 98, 101-102, 121-123, 136, 143, 168-176, 183-204
rest/utils/cql_evaluate.py                      48       5  89.58%   69, 76, 90, 97, 105
rest/utils/observability.py                     33      33  0.00%    27-133
rest/utils/rfc3339.py                           23       5  78.26%   43-44, 48, 60, 62
types/__init__.py                              133      44  66.92%   63, 67, 76-80, 91-103, 131-133, 140-145, 186, 200, 205, 227, 237-253, 258, 260, 282, 287, 295, 305
types/bbox.py                                   43      19  55.81%   46-61, 72-74, 85-87, 99-101, 113-115, 123
types/download_args.py                           9       0  100.00%
types/queryables.py                            108       1  99.07%   63
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
types/whoosh.py                                 81      16  80.25%   129-132, 136-143, 155-161, 174-176
utils/__init__.py                              533      48  90.99%   81, 197-198, 207-234, 237, 252, 332-336, 409-413, 432-434, 447-461, 540, 555, 595-596, 625, 1000-1003, 1011-1012, 1050-1051, 1098-1099, 1233
utils/exceptions.py                             46       0  100.00%
utils/import_system.py                          28      19  32.14%   64-78, 89-99
utils/logging.py                                28       1  96.43%   41
utils/notebook.py                               44      23  47.73%   25-29, 36-41, 58-62, 72-78, 83-87
utils/repr.py                                   38       8  78.95%   51, 53, 57, 98, 122-129
utils/requests.py                               55      29  47.27%   51-52, 64, 85-96, 107-124, 128
utils/rest.py                                   36       1  97.22%   55
utils/stac_reader.py                           111      45  59.46%   56-57, 63-85, 95-97, 101, 137, 153-156, 203-212, 222-252
TOTAL                                        10037    2111  78.97%

Diff against develop

Filename                                    Stmts    Miss  Cover
----------------------------------------  -------  ------  --------
cli.py                                         +9    -148  +46.42%
config.py                                       0     -57  +13.26%
api/core.py                                     0    -159  +20.31%
api/search_result.py                            0     -10  +17.24%
api/product/metadata_mapping.py                 0     -91  +13.09%
plugins/manager.py                              0     -29  +16.86%
plugins/apis/ecmwf.py                           0     -55  +56.70%
plugins/apis/usgs.py                            0    -126  +70.00%
plugins/authentication/aws_auth.py              0     -12  +60.00%
plugins/authentication/base.py                  0      -1  +5.89%
plugins/authentication/header.py                0      -2  +10.53%
plugins/authentication/keycloak.py              0     -23  +50.00%
plugins/authentication/openid_connect.py        0     -12  +5.82%
plugins/authentication/qsauth.py                0     -19  +55.88%
plugins/authentication/sas_auth.py              0     -30  +63.83%
plugins/authentication/token.py                 0     -63  +63.00%
plugins/authentication/token_exchange.py        0      -6  +16.67%
plugins/crunch/filter_date.py                   0     -31  +52.54%
plugins/crunch/filter_latest_tpl_name.py        0      -5  +16.12%
plugins/crunch/filter_overlap.py                0     -38  +57.58%
plugins/crunch/filter_property.py               0      -2  +6.66%
plugins/download/aws.py                         0    -260  +53.06%
plugins/download/base.py                        0     -63  +24.90%
plugins/download/creodias_s3.py                 0      -6  +24.00%
plugins/download/http.py                        0     -10  +1.89%
plugins/download/s3rest.py                      0     -73  +62.93%
plugins/search/base.py                          0     -75  +51.72%
plugins/search/build_search_result.py           0    -228  +63.86%
plugins/search/cop_marine.py                    0    -162  +66.40%
plugins/search/creodias_s3.py                   0     -33  +57.90%
plugins/search/data_request_search.py           0    -106  +52.47%
plugins/search/qssearch.py                      0    -280  +38.20%
plugins/search/static_stac_search.py            0      -6  +8.00%
rest/types/eodag_search.py                      0     -63  +35.00%
rest/types/stac_search.py                       0     -42  +33.60%
rest/utils/__init__.py                          0     -19  +20.22%
rest/utils/cql_evaluate.py                      0     -22  +45.83%
rest/utils/observability.py                   +33     +33  +100.00%
rest/utils/rfc3339.py                           0     -12  +52.17%
types/__init__.py                               0     -65  +48.87%
types/queryables.py                             0     -15  +13.88%
types/search_args.py                            0     -15  +21.43%
types/whoosh.py                                 0      -4  +4.94%
utils/__init__.py                               0      -8  +1.50%
utils/exceptions.py                             0      -1  +2.17%
utils/logging.py                                0      -7  +25.00%
utils/repr.py                                   0      -5  +13.16%
utils/rest.py                                   0     -20  +55.55%
utils/stac_reader.py                            0      -4  +3.60%
TOTAL                                         +42   -2490  +25.00%

Results for commit: 1db5715

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

@alambare alambare force-pushed the 853-opentelemetry-metrics-for-server-mode branch from f8e3679 to b6dea4a Compare December 6, 2024 07:55
dalpasso and others added 6 commits January 23, 2025 18:52
feat: add a decorator for the progress_callback

This decorator is used by the auto-instrumentation of EODAG

feat: OpenTelemetry auto-instrumentation

feat: init OpenTelemetry metrics in server mode

The env var OTEL_EXPORTER_OTLP_ENDPOINT must be set to init the metrics

feat: add download overhead metric

feat: add Helm configuration for OpenTelemetry

setup: add `opentelemetry-instrumentation-eodag` dependency as git repo

cli: add option `--observability` to enable the telemetry
@anesson-cs anesson-cs force-pushed the 853-opentelemetry-metrics-for-server-mode branch from ea16887 to 1db5715 Compare January 23, 2025 17:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pending Waiting for further information / action
Projects
None yet
Development

Successfully merging this pull request may close these issues.

prometheus metrics for server mode
4 participants