|
2 | 2 |
|
3 | 3 | ## 1.45.0
|
4 | 4 |
|
| 5 | +This is the final 1.x release for the forseeable future. Development will continue on the 2.x release line. The first 2.x version will be available in the next few weeks. |
| 6 | + |
5 | 7 | ### Various fixes & improvements
|
6 | 8 |
|
7 |
| -- fix(metrics): Change `data_category` from `statsd` to `metric_bucket` (#2954) by @cleptric |
8 |
| -- feat(metrics): New normalization of keys, values, units (#2946) by @sentrivana |
9 |
| -- feat(typing): Make monitor_config a TypedDict (#2931) by @sentrivana |
10 |
| -- feat(metrics): Add value, unit to before_emit_metric (#2958) by @sentrivana |
11 |
| -- chore: Remove experimental metric summary options (#2957) by @sentrivana |
12 |
| -- fix(profiler): Accessing __mro__ might throw a ValueError (#2952) by @sentrivana |
13 |
| -- feat(integrations): Add django signals_denylist to filter signals that are attached to by signals_span (#2758) by @lieryan |
14 |
| -- build(deps): bump types-protobuf from 4.24.0.20240311 to 4.24.0.20240408 (#2941) by @dependabot |
15 |
| -- ref(crons): Remove deprecated `typing` imports (#2945) by @szokeasaurusrex |
16 |
| -- fix(crons): Fix type hints for monitor decorator (#2944) by @szokeasaurusrex |
17 |
| -- Suppress prompt spawned by subprocess when using pythonw (#2936) by @antonpirker |
18 |
| -- fix(integrations): Handle None-value in GraphQL query #2715 (#2762) by @czyber |
19 |
| -- feat: incr -> increment for metrics (#2588) by @mitsuhiko |
20 |
| -- Disable Codecov Check Run Annotations (#2537) by @eliatcodecov |
21 |
| -- Add devenv-requirements.txt and update env setup instructions (#2761) by @arr-ee |
22 |
| -- Do not send "quiet" Sanic exceptions to Sentry. (#2821) by @hamedsh |
23 |
| -- feat(metrics): Implement metric_bucket rate limits (#2933) by @cleptric |
24 |
| -- feat(crons): Allow to upsert monitors (#2929) by @sentrivana |
| 9 | +- Allow to upsert monitors (#2929) by @sentrivana |
| 10 | + |
| 11 | + It's now possible to provide `monitor_config` to the `monitor` decorator/context manager directly: |
| 12 | + |
| 13 | + ```python |
| 14 | + from sentry_sdk.crons import monitor |
| 15 | + |
| 16 | + # All keys except `schedule` are optional |
| 17 | + monitor_config = { |
| 18 | + "schedule": {"type": "crontab", "value": "0 0 * * *"}, |
| 19 | + "timezone": "Europe/Vienna", |
| 20 | + "checkin_margin": 10, |
| 21 | + "max_runtime": 10, |
| 22 | + "failure_issue_threshold": 5, |
| 23 | + "recovery_threshold": 5, |
| 24 | + } |
| 25 | + |
| 26 | + @monitor(monitor_slug='<monitor-slug>', monitor_config=monitor_config) |
| 27 | + def tell_the_world(): |
| 28 | + print('My scheduled task...') |
| 29 | + ``` |
| 30 | + |
| 31 | + Check out [the cron docs](https://docs.sentry.io/platforms/python/crons/) for details. |
| 32 | + |
| 33 | +- Add Django `signals_denylist` to filter signals that are attached to by `signals_spans` (#2758) by @lieryan |
| 34 | + |
| 35 | + If you want to exclude some Django signals from performance tracking, you can use the new `signals_denylist` Django option: |
| 36 | + |
| 37 | + ```python |
| 38 | + import django.db.models.signals |
| 39 | + import sentry_sdk |
| 40 | + |
| 41 | + sentry_sdk.init( |
| 42 | + ... |
| 43 | + integrations=[ |
| 44 | + DjangoIntegration( |
| 45 | + ... |
| 46 | + signals_denylist=[ |
| 47 | + django.db.models.signals.pre_init, |
| 48 | + django.db.models.signals.post_init, |
| 49 | + ], |
| 50 | + ), |
| 51 | + ], |
| 52 | + ) |
| 53 | + ``` |
| 54 | + |
| 55 | +- `increment` for metrics (#2588) by @mitsuhiko |
| 56 | + |
| 57 | + `increment` and `inc` are equivalent, so you can pick whichever you like more. |
| 58 | + |
| 59 | +- Add `value`, `unit` to `before_emit_metric` (#2958) by @sentrivana |
| 60 | + |
| 61 | + If you add a custom `before_emit_metric`, it'll now accept 4 arguments (the `key`, `value`, `unit` and `tags`) instead of just `key` and `tags`. |
| 62 | + |
| 63 | + ```python |
| 64 | + def before_emit(key, value, unit, tags): |
| 65 | + if key == "removed-metric": |
| 66 | + return False |
| 67 | + tags["extra"] = "foo" |
| 68 | + del tags["release"] |
| 69 | + return True |
| 70 | + |
| 71 | + sentry_sdk.init( |
| 72 | + ... |
| 73 | + _experiments={ |
| 74 | + "before_emit_metric": before_emit, |
| 75 | + } |
| 76 | + ) |
| 77 | + ``` |
| 78 | + |
| 79 | +- Remove experimental metric summary options (#2957) by @sentrivana |
| 80 | + |
| 81 | + The `_experiments` options `metrics_summary_sample_rate` and `should_summarize_metric` have been removed. |
| 82 | + |
| 83 | +- New normalization rules for metric keys, names, units, tags (#2946) by @sentrivana |
| 84 | +- Change `data_category` from `statsd` to `metric_bucket` (#2954) by @cleptric |
| 85 | +- Accessing `__mro__` might throw a `ValueError` (#2952) by @sentrivana |
| 86 | +- Suppress prompt spawned by subprocess when using `pythonw` (#2936) by @collinbanko |
| 87 | +- Handle `None` in GraphQL query #2715 (#2762) by @czyber |
| 88 | +- Do not send "quiet" Sanic exceptions to Sentry (#2821) by @hamedsh |
| 89 | +- Implement `metric_bucket` rate limits (#2933) by @cleptric |
| 90 | +- Fix type hints for `monitor` decorator (#2944) by @szokeasaurusrex |
| 91 | +- Remove deprecated `typing` imports in crons (#2945) by @szokeasaurusrex |
| 92 | +- Make `monitor_config` a `TypedDict` (#2931) by @sentrivana |
| 93 | +- Add `devenv-requirements.txt` and update env setup instructions (#2761) by @arr-ee |
| 94 | +- Bump `types-protobuf` from `4.24.0.20240311` to `4.24.0.20240408` (#2941) by @dependabot |
| 95 | +- Disable Codecov check run annotations (#2537) by @eliatcodecov |
25 | 96 |
|
26 | 97 | ## 1.44.1
|
27 | 98 |
|
|
0 commit comments