|  | 
| 4 | 4 | 
 | 
| 5 | 5 | ### Various fixes & improvements | 
| 6 | 6 | 
 | 
| 7 |  | -- Adds `trace_propagation_targets` option (#1916) by @antonpirker | 
| 8 |  | -- feat(cloud): Adding Cloud Resource Context (#1882) by @antonpirker | 
| 9 |  | -- fix(profiling): Start profiler thread lazily (#1903) by @Zylphrex | 
| 10 |  | -- feat(arq): add arq integration (#1872) by @Zhenay | 
| 11 |  | -- tests(gevent): Add workflow to test gevent (#1870) by @Zylphrex | 
| 12 |  | -- Updated outdated HTTPX test matrix (#1917) by @antonpirker | 
| 13 |  | -- Make set_measurement public api and remove experimental status (#1909) by @sl0thentr0py | 
| 14 |  | -- feat(falcon): Update of Falcon Integration (#1733) by @antonpirker | 
| 15 |  | -- Remove deprecated `tracestate` (#1907) by @antonpirker | 
| 16 |  | -- Switch to MIT license (#1908) by @cleptric | 
|  | 7 | +- **New:** Add [arq](https://arq-docs.helpmanual.io/) Integration (#1872) by @Zhenay | 
|  | 8 | + | 
|  | 9 | +  This integration will create performance spans when arq jobs will be enqueued and when they will be run. | 
|  | 10 | +  It will also capture errors in jobs and will link them to the performance spans. | 
|  | 11 | + | 
|  | 12 | +  Usage: | 
|  | 13 | + | 
|  | 14 | +  ```python | 
|  | 15 | +  import asyncio | 
|  | 16 | + | 
|  | 17 | +  from httpx import AsyncClient | 
|  | 18 | +  from arq import create_pool | 
|  | 19 | +  from arq.connections import RedisSettings | 
|  | 20 | + | 
|  | 21 | +  import sentry_sdk | 
|  | 22 | +  from sentry_sdk.integrations.arq import ArqIntegration | 
|  | 23 | +  from sentry_sdk.tracing import TRANSACTION_SOURCE_COMPONENT | 
|  | 24 | + | 
|  | 25 | +  sentry_sdk.init( | 
|  | 26 | +      dsn="...", | 
|  | 27 | +      integrations=[ArqIntegration()], | 
|  | 28 | +  ) | 
|  | 29 | + | 
|  | 30 | +  async def download_content(ctx, url): | 
|  | 31 | +      session: AsyncClient = ctx['session'] | 
|  | 32 | +      response = await session.get(url) | 
|  | 33 | +      print(f'{url}: {response.text:.80}...') | 
|  | 34 | +      return len(response.text) | 
|  | 35 | + | 
|  | 36 | +  async def startup(ctx): | 
|  | 37 | +      ctx['session'] = AsyncClient() | 
|  | 38 | + | 
|  | 39 | +  async def shutdown(ctx): | 
|  | 40 | +      await ctx['session'].aclose() | 
|  | 41 | + | 
|  | 42 | +  async def main(): | 
|  | 43 | +      with sentry_sdk.start_transaction(name="testing_arq_tasks", source=TRANSACTION_SOURCE_COMPONENT): | 
|  | 44 | +          redis = await create_pool(RedisSettings()) | 
|  | 45 | +          for url in ('https://facebook.com', 'https://microsoft.com', 'https://github.com', "asdf" | 
|  | 46 | +                      ): | 
|  | 47 | +              await redis.enqueue_job('download_content', url) | 
|  | 48 | + | 
|  | 49 | +  class WorkerSettings: | 
|  | 50 | +      functions = [download_content] | 
|  | 51 | +      on_startup = startup | 
|  | 52 | +      on_shutdown = shutdown | 
|  | 53 | + | 
|  | 54 | +  if __name__ == '__main__': | 
|  | 55 | +      asyncio.run(main()) | 
|  | 56 | +  ``` | 
|  | 57 | + | 
|  | 58 | +- Update of [Falcon](https://falconframework.org/) Integration (#1733) by @bartolootrit | 
|  | 59 | +- Adding [Cloud Resource Context](https://docs.sentry.io/platforms/python/configuration/integrations/cloudresourcecontext/) integration (#1882) by @antonpirker | 
|  | 60 | +- Profiling: Use the transaction timestamps to anchor the profile (#1898) by @Zylphrex | 
|  | 61 | +- Profiling: Add debug logs to profiling (#1883) by @Zylphrex | 
|  | 62 | +- Profiling: Start profiler thread lazily (#1903) by @Zylphrex | 
| 17 | 63 | - Fixed checks for structured http data (#1905) by @antonpirker | 
| 18 |  | -- Add enable_tracing to default traces_sample_rate to 1.0 (#1900) by @sl0thentr0py | 
| 19 |  | -- feat(pii): Sanitize URLs in Span description and breadcrumbs (#1876) by @antonpirker | 
| 20 |  | -- ref(profiling): Use the transaction timestamps to anchor the profile (#1898) by @Zylphrex | 
| 21 |  | -- Better setting of in-app in stack frames (#1894) by @antonpirker | 
|  | 64 | +- Make `set_measurement` public api and remove experimental status (#1909) by @sl0thentr0py | 
|  | 65 | +- Add `trace_propagation_targets` option (#1916) by @antonpirker | 
|  | 66 | +- Add `enable_tracing` to default traces_sample_rate to 1.0 (#1900) by @sl0thentr0py | 
|  | 67 | +- Remove deprecated `tracestate` (#1907) by @sl0thentr0py | 
|  | 68 | +- Sanitize URLs in Span description and breadcrumbs (#1876) by @antonpirker | 
| 22 | 69 | - Mechanism should default to true unless set explicitly (#1889) by @sl0thentr0py | 
| 23 |  | -- ref(profiling): Add debug logs to profiling (#1883) by @Zylphrex | 
|  | 70 | +- Better setting of in-app in stack frames (#1894) by @antonpirker | 
|  | 71 | +- Add workflow to test gevent (#1870) by @Zylphrex | 
|  | 72 | +- Updated outdated HTTPX test matrix (#1917) by @antonpirker | 
|  | 73 | +- Switch to MIT license (#1908) by @cleptric | 
| 24 | 74 | 
 | 
| 25 | 75 | ## 1.15.0 | 
| 26 | 76 | 
 | 
|  | 
0 commit comments