Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: pydantic/logfire
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 4d4360b7ca37e39b3c01c79ccd08abbcfa9a5684
Choose a base ref
..
head repository: pydantic/logfire
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 296730f6df710bf952b0f9f2bd22fc28a8d4452b
Choose a head ref
Showing with 9,307 additions and 4,645 deletions.
  1. +19 −4 .github/workflows/daily_deps_test.yml
  2. +5 −14 .github/workflows/main.yml
  3. +1 −0 .hyperlint/styles/config/vocabularies/hyperlint/accept.txt
  4. +90 −0 CHANGELOG.md
  5. +2 −2 docs/{get-started/traces.md → concepts.md}
  6. +9 −0 docs/extra/tweaks.css
  7. +0 −66 docs/guides/advanced/backfill.md
  8. +0 −7 docs/guides/advanced/index.md
  9. +0 −48 docs/guides/index.md
  10. +1 −1 docs/guides/onboarding-checklist/add-auto-tracing.md
  11. +2 −2 docs/guides/onboarding-checklist/index.md
  12. +4 −1 docs/guides/web-ui/alerts.md
  13. +0 −6 docs/guides/web-ui/index.md
  14. +53 −70 docs/guides/web-ui/live.md
  15. +1 −2 docs/help.md
  16. 0 docs/{guides/advanced → how-to-guides}/alternative-backends.md
  17. +82 −3 docs/{guides/advanced → how-to-guides}/alternative-clients.md
  18. +1 −1 docs/{guides/advanced/creating-write-tokens.md → how-to-guides/create-write-tokens.md}
  19. +58 −0 docs/how-to-guides/detect-service-is-down.md
  20. +81 −0 docs/how-to-guides/distributed-tracing.md
  21. +9 −5 docs/{guides/advanced → how-to-guides}/environments.md
  22. +1 −7 docs/{guides/advanced → how-to-guides}/link-to-code-source.md
  23. +2 −2 docs/{guides/advanced → how-to-guides}/query-api.md
  24. 0 docs/{guides/advanced → how-to-guides}/sampling.md
  25. +2 −2 docs/{guides/advanced → how-to-guides}/scrubbing.md
  26. +57 −0 docs/how-to-guides/suppress.md
  27. BIN docs/images/guide/live-view-collapsed-annotated.png
  28. BIN docs/images/guide/live-view-details-panel-open-annotated.png
  29. BIN docs/images/guide/live-view-natural-language.png
  30. BIN docs/images/guide/live-view-reference.png
  31. BIN docs/images/guide/live-view-search.png
  32. BIN docs/images/guide/live-view-start-here.png
  33. BIN docs/images/logfire-screenshot-magentic-create-superhero.png
  34. +13 −10 docs/index.md
  35. +38 −0 docs/integrations/aws-lambda.md
  36. +11 −13 docs/integrations/{ → databases}/asyncpg.md
  37. +19 −0 docs/integrations/{ → databases}/bigquery.md
  38. +12 −14 docs/integrations/{ → databases}/mysql.md
  39. +28 −12 docs/integrations/{ → databases}/psycopg.md
  40. +13 −1 docs/integrations/{ → databases}/pymongo.md
  41. +32 −1 docs/integrations/{ → databases}/redis.md
  42. +3 −1 docs/integrations/{ → databases}/sqlalchemy.md
  43. +83 −0 docs/integrations/databases/sqlite3.md
  44. +165 −0 docs/integrations/event-streams/airflow.md
  45. +4 −0 docs/integrations/{ → event-streams}/celery.md
  46. +50 −0 docs/integrations/event-streams/faststream.md
  47. +19 −0 docs/integrations/{ → http-clients}/aiohttp.md
  48. +150 −0 docs/integrations/http-clients/httpx.md
  49. +4 −0 docs/integrations/{ → http-clients}/requests.md
  50. +0 −71 docs/integrations/httpx.md
  51. +59 −27 docs/integrations/index.md
  52. +27 −7 docs/integrations/{ → llms}/anthropic.md
  53. +4 −1 docs/integrations/{third-party → llms}/litellm.md
  54. +77 −0 docs/integrations/llms/llamaindex.md
  55. +62 −0 docs/integrations/llms/magentic.md
  56. +5 −1 docs/integrations/{third-party → llms}/mirascope.md
  57. +7 −5 docs/integrations/{ → llms}/openai.md
  58. +23 −0 docs/integrations/logging.md
  59. +4 −0 docs/integrations/loguru.md
  60. +4 −0 docs/integrations/pydantic.md
  61. +6 −2 docs/integrations/stripe.md
  62. +4 −0 docs/integrations/structlog.md
  63. +4 −0 docs/integrations/system-metrics.md
  64. +0 −29 docs/integrations/third-party/index.md
  65. +4 −15 docs/integrations/{ → web-frameworks}/asgi.md
  66. +17 −9 docs/integrations/{ → web-frameworks}/django.md
  67. +4 −12 docs/integrations/{ → web-frameworks}/fastapi.md
  68. +4 −12 docs/integrations/{ → web-frameworks}/flask.md
  69. +7 −7 docs/integrations/{use-cases/web-frameworks.md → web-frameworks/index.md}
  70. +4 −12 docs/integrations/{ → web-frameworks}/starlette.md
  71. +4 −6 docs/integrations/{ → web-frameworks}/wsgi.md
  72. +69 −0 docs/javascripts/search-worker.js
  73. +45 −0 docs/overrides/main.html
  74. +71 −0 docs/plugins/build_index.py
  75. +91 −54 docs/plugins/main.py
  76. 0 docs/{guides → reference}/advanced/generators.md
  77. 0 docs/{guides → reference}/advanced/testing.md
  78. +7 −1 docs/reference/api/logfire.md
  79. +0 −5 docs/reference/cli.md
  80. +2 −2 docs/reference/configuration.md
  81. +1 −1 docs/reference/examples.md
  82. +0 −5 docs/release-notes.md
  83. +2 −9 docs/roadmap.md
  84. +0 −66 docs/why-logfire/index.md
  85. +0 −55 docs/why-logfire/opentelemetry.md
  86. +0 −52 docs/why-logfire/pydantic.md
  87. +0 −17 docs/why-logfire/python-centric.md
  88. +0 −19 docs/why-logfire/simplicity.md
  89. +0 −45 docs/why-logfire/sql.md
  90. +265 −0 docs/why.md
  91. +176 −94 examples/javascript/express/package-lock.json
  92. +1 −1 examples/javascript/express/package.json
  93. +9 −3 logfire-api/logfire_api/__init__.py
  94. +5 −3 logfire-api/logfire_api/__init__.pyi
  95. +4 −5 logfire-api/logfire_api/_internal/auto_trace/import_hook.pyi
  96. +5 −3 logfire-api/logfire_api/_internal/auto_trace/rewrite_ast.pyi
  97. +0 −72 logfire-api/logfire_api/_internal/backfill.pyi
  98. +6 −2 logfire-api/logfire_api/_internal/cli.pyi
  99. +18 −30 logfire-api/logfire_api/_internal/config.pyi
  100. +1 −0 logfire-api/logfire_api/_internal/config_params.pyi
  101. +0 −1 logfire-api/logfire_api/_internal/constants.pyi
  102. +0 −12 logfire-api/logfire_api/_internal/exporters/fallback.pyi
  103. +0 −64 logfire-api/logfire_api/_internal/exporters/file.pyi
  104. +12 −4 logfire-api/logfire_api/_internal/exporters/processor_wrapper.pyi
  105. +3 −2 logfire-api/logfire_api/_internal/exporters/wrapper.pyi
  106. +2 −6 logfire-api/logfire_api/_internal/integrations/asyncpg.pyi
  107. +13 −0 logfire-api/logfire_api/_internal/integrations/aws_lambda.pyi
  108. +2 −6 logfire-api/logfire_api/_internal/integrations/celery.pyi
  109. +4 −3 logfire-api/logfire_api/_internal/integrations/django.pyi
  110. +3 −18 logfire-api/logfire_api/_internal/integrations/flask.pyi
  111. +68 −16 logfire-api/logfire_api/_internal/integrations/httpx.pyi
  112. +5 −8 logfire-api/logfire_api/_internal/integrations/mysql.pyi
  113. +8 −15 logfire-api/logfire_api/_internal/integrations/psycopg.pyi
  114. +4 −20 logfire-api/logfire_api/_internal/integrations/pymongo.pyi
  115. +2 −19 logfire-api/logfire_api/_internal/integrations/redis.pyi
  116. +4 −3 logfire-api/logfire_api/_internal/integrations/requests.pyi
  117. +4 −13 logfire-api/logfire_api/_internal/integrations/sqlalchemy.pyi
  118. +11 −0 logfire-api/logfire_api/_internal/integrations/sqlite3.pyi
  119. +2 −7 logfire-api/logfire_api/_internal/integrations/starlette.pyi
  120. +4 −14 logfire-api/logfire_api/_internal/integrations/wsgi.pyi
  121. +1 −1 logfire-api/logfire_api/_internal/json_encoder.pyi
  122. +132 −79 logfire-api/logfire_api/_internal/main.pyi
  123. +7 −16 logfire-api/logfire_api/_internal/metrics.pyi
  124. +1 −0 logfire-api/logfire_api/_internal/stack_info.pyi
  125. +33 −8 logfire-api/logfire_api/_internal/tracer.pyi
  126. +12 −0 logfire-api/logfire_api/integrations/flask.pyi
  127. +28 −0 logfire-api/logfire_api/integrations/httpx.pyi
  128. +10 −0 logfire-api/logfire_api/integrations/psycopg.pyi
  129. +26 −0 logfire-api/logfire_api/integrations/redis.pyi
  130. +7 −0 logfire-api/logfire_api/integrations/sqlalchemy.pyi
  131. +5 −0 logfire-api/logfire_api/integrations/wsgi.pyi
  132. +34 −1 logfire-api/logfire_api/propagate.pyi
  133. +2 −1 logfire-api/pyproject.toml
  134. +8 −11 logfire/__init__.py
  135. +37 −21 logfire/_internal/auto_trace/import_hook.py
  136. +14 −9 logfire/_internal/auto_trace/rewrite_ast.py
  137. +0 −238 logfire/_internal/backfill.py
  138. +86 −110 logfire/_internal/cli.py
  139. +80 −44 logfire/_internal/config.py
  140. +3 −0 logfire/_internal/config_params.py
  141. +0 −3 logfire/_internal/constants.py
  142. +0 −40 logfire/_internal/exporters/fallback.py
  143. +0 −198 logfire/_internal/exporters/file.py
  144. +25 −12 logfire/_internal/exporters/processor_wrapper.py
  145. +3 −2 logfire/_internal/exporters/wrapper.py
  146. +4 −7 logfire/_internal/formatter.py
  147. +2 −2 logfire/_internal/integrations/aiohttp_client.py
  148. +4 −18 logfire/_internal/integrations/asyncpg.py
  149. +35 −0 logfire/_internal/integrations/aws_lambda.py
  150. +4 −18 logfire/_internal/integrations/celery.py
  151. +22 −10 logfire/_internal/integrations/django.py
  152. +3 −2 logfire/_internal/integrations/executors.py
  153. +1 −1 logfire/_internal/integrations/fastapi.py
  154. +18 −28 logfire/_internal/integrations/flask.py
  155. +449 −26 logfire/_internal/integrations/httpx.py
  156. +11 −4 logfire/_internal/integrations/llm_providers/anthropic.py
  157. +6 −11 logfire/_internal/integrations/mysql.py
  158. +36 −23 logfire/_internal/integrations/psycopg.py
  159. +24 −25 logfire/_internal/integrations/pymongo.py
  160. +11 −20 logfire/_internal/integrations/redis.py
  161. +17 −11 logfire/_internal/integrations/requests.py
  162. +18 −16 logfire/_internal/integrations/sqlalchemy.py
  163. +29 −0 logfire/_internal/integrations/sqlite3.py
  164. +11 −13 logfire/_internal/integrations/starlette.py
  165. +2 −2 logfire/_internal/integrations/system_metrics.py
  166. +17 −34 logfire/_internal/integrations/wsgi.py
  167. +17 −8 logfire/_internal/json_encoder.py
  168. +2 −2 logfire/_internal/json_formatter.py
  169. +54 −40 logfire/_internal/json_schema.py
  170. +468 −189 logfire/_internal/main.py
  171. +33 −27 logfire/_internal/metrics.py
  172. +3 −1 logfire/_internal/stack_info.py
  173. +120 −14 logfire/_internal/tracer.py
  174. +8 −1 logfire/_internal/utils.py
  175. +25 −0 logfire/integrations/flask.py
  176. +44 −0 logfire/integrations/httpx.py
  177. +23 −0 logfire/integrations/psycopg.py
  178. +31 −0 logfire/integrations/redis.py
  179. +12 −0 logfire/integrations/sqlalchemy.py
  180. +1 −0 logfire/integrations/structlog.py
  181. +14 −0 logfire/integrations/wsgi.py
  182. +87 −6 logfire/propagate.py
  183. +116 −69 mkdocs.yml
  184. +74 −51 pyproject.toml
  185. +1 −0 tests/conftest.py
  186. +0 −108 tests/exporters/test_fallback_exporter.py
  187. +0 −228 tests/exporters/test_file_exporter.py
  188. +14 −4 tests/otel_integrations/test_anthropic.py
  189. +147 −0 tests/otel_integrations/test_anthropic_bedrock.py
  190. +1 −1 tests/otel_integrations/test_asyncpg.py
  191. +94 −0 tests/otel_integrations/test_aws_lambda.py
  192. +1 −1 tests/otel_integrations/test_celery.py
  193. +704 −14 tests/otel_integrations/test_httpx.py
  194. +1 −1 tests/otel_integrations/test_mysql.py
  195. +7 −7 tests/otel_integrations/test_psycopg.py
  196. +2 −2 tests/otel_integrations/test_redis.py
  197. +1 −1 tests/otel_integrations/test_requests.py
  198. +194 −16 tests/otel_integrations/test_sqlalchemy.py
  199. +153 −0 tests/otel_integrations/test_sqlite3.py
  200. +1 −1 tests/otel_integrations/test_system_metrics.py
  201. +16 −0 tests/otel_integrations/test_wsgi.py
  202. +2 −2 tests/test_auto_trace.py
  203. +0 −227 tests/test_backfill.py
  204. +175 −156 tests/test_cli.py
  205. +299 −82 tests/test_configure.py
  206. +1 −1 tests/test_formatter.py
  207. +35 −0 tests/test_json_args.py
  208. +265 −193 tests/test_logfire.py
  209. +8 −4 tests/test_logfire_api.py
  210. +38 −2 tests/test_metrics.py
  211. +37 −0 tests/test_pydantic_plugin.py
  212. +11 −8 tests/test_source_code_extraction.py
  213. +34 −0 tests/test_structlog.py
  214. +83 −57 tests/test_tail_sampling.py
  215. +13 −6 tests/test_utils.py
  216. +2,176 −764 uv.lock
23 changes: 19 additions & 4 deletions .github/workflows/daily_deps_test.yml
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
pydantic-version: ['main']
include:
- python-version: '3.12'
@@ -29,6 +29,8 @@ jobs:
pydantic-version: '2.8'
- python-version: '3.12'
pydantic-version: '2.9'
- python-version: '3.12'
pydantic-version: '2.10'
env:
PYTHON: ${{ matrix.python-version }}
steps:
@@ -57,6 +59,19 @@ jobs:

- run: uv run --no-sync pytest

- name: Notify on failure
if: failure()
run: echo "Tests failed. TODO - send notification..."
notify-on-failure:
name: Notify maintainers on CI failure
runs-on: ubuntu-latest
needs: test
# only run if the test job failed
if: ${{ failure() }}

steps:
- name: Send slack message
uses: slackapi/slack-github-action@v2.0.0
with:
webhook: ${{ secrets.SLACK_WEBHOOK_URL }}
webhook-type: webhook-trigger
payload: |
heading: Logfire daily CI deps test ${{github.repository}} failed!
body: See details at ${{github.server_url}}/${{github.repository}}/actions/runs/${{github.run_id}}
19 changes: 5 additions & 14 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -52,28 +52,20 @@ jobs:
else
uv run --no-sync mkdocs build
fi
env:
ALGOLIA_WRITE_API_KEY: ${{ secrets.ALGOLIA_WRITE_API_KEY }}
test:
name: test on Python ${{ matrix.python-version }} and pydantic ${{ matrix.pydantic-version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
pydantic-version: ['main']
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
pydantic-version: ['2.10']
include:
- python-version: '3.12'
pydantic-version: '2.4'
- python-version: '3.12'
pydantic-version: '2.5'
- python-version: '3.12'
pydantic-version: '2.6'
- python-version: '3.12'
pydantic-version: '2.7'
- python-version: '3.12'
pydantic-version: '2.8'
- python-version: '3.12'
pydantic-version: '2.9'
env:
PYTHON: ${{ matrix.python-version }}
steps:
@@ -95,8 +87,7 @@ jobs:
- run: uv sync --python ${{ matrix.python-version }}

- name: Install pydantic ${{ matrix.pydantic-version }}
if: matrix.pydantic-version != 'main'
# installs the most recent patch on the minor version's track, ex 2.6.0 -> 2.6.4
# installs the most recent patch on the minor version's track, ex 2.6.* -> 2.6.4
run: uv pip install 'pydantic==${{ matrix.pydantic-version }}.*'

- run: mkdir coverage
1 change: 1 addition & 0 deletions .hyperlint/styles/config/vocabularies/hyperlint/accept.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
validator
[Pp]ydantic
validators
[Mm]agentic
namespace
Hyperlint
preprocess
90 changes: 90 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,81 @@
# Release Notes

## [v3.0.0] (2025-01-07)

* **BREAKING CHANGE**: Removed `capture_request_json_body`, `capture_request_text_body`, `capture_request_form_data`, and `capture_response_json_body` parameters from `logfire.instrument_httpx()`, replaced with `capture_request_body` `capture_response_body` by @Kludex in [#769](https://github.com/pydantic/logfire/pull/769)

Other changes:

* Add `distributed_tracing` argument to `logfire.configure()` and warn by default when trace context is extracted by @alexmojaki in [#773](https://github.com/pydantic/logfire/pull/773)
* Don't show `urllib3` when `requests` is installed on `logfire inspect` by @Kludex in [#744](https://github.com/pydantic/logfire/pull/744)
* Add `--ignore` to `logfire inspect` by @Kludex in [#748](https://github.com/pydantic/logfire/pull/748)
* Access `model_fields` on the model class by @Viicos in [#761](https://github.com/pydantic/logfire/pull/761)
* Remove double record exception by @dmontagu in [#712](https://github.com/pydantic/logfire/pull/712)

## [v2.11.1] (2024-12-30)

* Handle errors from `sqlalchemy.inspect` by @alexmojaki in [#733](https://github.com/pydantic/logfire/pull/733)

## [v2.11.0] (2024-12-23)

* Add `capture_request_text_body` param to `instrument_httpx` by @alexmojaki in [#722](https://github.com/pydantic/logfire/pull/722)
* Support for `AnthropicBedrock` client by @stephenhibbert in [#701](https://github.com/pydantic/logfire/pull/701)

## [v2.10.0] (2024-12-23)

* Add `capture_request_form_data` param to `instrument_httpx` by @alexmojaki in [#711](https://github.com/pydantic/logfire/pull/711)
* Replace `capture_(request|response)_headers` with just `capture_headers` in `instrument_httpx` by @Kludex in [#719](https://github.com/pydantic/logfire/pull/719)
* Support SQLAlchemy `AsyncEngine` by @Kludex in [#717](https://github.com/pydantic/logfire/pull/717)

## [v2.9.0] (2024-12-20)

* Capture httpx response JSON bodies by @alexmojaki in [#700](https://github.com/pydantic/logfire/pull/700)
* Use end-at-shutdown and custom `record_exception` logic for all spans by @dmontagu in [#696](https://github.com/pydantic/logfire/pull/696)

## [v2.8.0] (2024-12-18)

* Add `capture_(request|response)_headers` ([#671](https://github.com/pydantic/logfire/pull/671)) and `capture_request_json_body` ([#682](https://github.com/pydantic/logfire/pull/682)) to `instrument_httpx` by @Kludex
* Fix patching of ProcessPoolExecutor by @alexmojaki in [#690](https://github.com/pydantic/logfire/pull/690)
* Rearrange span processors to avoid repeating scrubbing and other tweaking by @alexmojaki in [#658](https://github.com/pydantic/logfire/pull/658)
* Remove end-on-exit stuff by @dmontagu in [#676](https://github.com/pydantic/logfire/pull/676)

## [v2.7.1] (2024-12-13)

* Fix erroneous `<circular reference>` when object is repeated in list by @alexmojaki in [#664](https://github.com/pydantic/logfire/pull/664)

## [v2.7.0] (2024-12-11)

* Add `logfire.instrument_aws_lambda` by @Kludex in [#657](https://github.com/pydantic/logfire/pull/657)

## [v2.6.2] (2024-12-05)

* Update the `process.pid` resource attribute after `os.fork()` by @alexmojaki in [#647](https://github.com/pydantic/logfire/pull/647)
* Check for `os.register_at_fork` before calling by @alexmojaki in [#648](https://github.com/pydantic/logfire/pull/648)

## [v2.6.1] (2024-12-05)

* Use `exc_info` in structlog processor by @alexmojaki in [#641](https://github.com/pydantic/logfire/pull/641)
* Re-seed random ID generator after `os.fork()` by @alexmojaki in [#644](https://github.com/pydantic/logfire/pull/644)

## [v2.6.0] (2024-12-02)

* Add `instrument_sqlite3` by @Kludex in [#634](https://github.com/pydantic/logfire/pull/634)

## [v2.5.0] (2024-11-27)

* Add `logfire.suppress_scopes` method by @alexmojaki in [#628](https://github.com/pydantic/logfire/pull/628)
* Replace `ModuleNotFoundError` by `ImportError` by @Kludex in [#622](https://github.com/pydantic/logfire/pull/622)

## [v2.4.1] (2024-11-21)

* Allow new context argument of metric instrument methods to be passed positionally by @alexmojaki in [#616](https://github.com/pydantic/logfire/pull/616)

## [v2.4.0] (2024-11-20)

* Support `logfire.instrument` without arguments by @Kludex in [#607](https://github.com/pydantic/logfire/pull/607)
* Handle internal errors in `create_json_schema` by @alexmojaki in [#613](https://github.com/pydantic/logfire/pull/613)
* Handle errors in auto-tracing better by @alexmojaki in [#610](https://github.com/pydantic/logfire/pull/610)

## [v2.3.0] (2024-11-14)

* Respect repr on fields when logging a dataclass by @dmontagu in [#592](https://github.com/pydantic/logfire/pull/592)
@@ -427,3 +503,17 @@ First release from new repo!
[v2.2.0]: https://github.com/pydantic/logfire/compare/v2.1.2...v2.2.0
[v2.2.1]: https://github.com/pydantic/logfire/compare/v2.2.0...v2.2.1
[v2.3.0]: https://github.com/pydantic/logfire/compare/v2.2.1...v2.3.0
[v2.4.0]: https://github.com/pydantic/logfire/compare/v2.3.0...v2.4.0
[v2.4.1]: https://github.com/pydantic/logfire/compare/v2.4.0...v2.4.1
[v2.5.0]: https://github.com/pydantic/logfire/compare/v2.4.1...v2.5.0
[v2.6.0]: https://github.com/pydantic/logfire/compare/v2.5.0...v2.6.0
[v2.6.1]: https://github.com/pydantic/logfire/compare/v2.6.0...v2.6.1
[v2.6.2]: https://github.com/pydantic/logfire/compare/v2.6.1...v2.6.2
[v2.7.0]: https://github.com/pydantic/logfire/compare/v2.6.2...v2.7.0
[v2.7.1]: https://github.com/pydantic/logfire/compare/v2.7.0...v2.7.1
[v2.8.0]: https://github.com/pydantic/logfire/compare/v2.7.1...v2.8.0
[v2.9.0]: https://github.com/pydantic/logfire/compare/v2.8.0...v2.9.0
[v2.10.0]: https://github.com/pydantic/logfire/compare/v2.9.0...v2.10.0
[v2.11.0]: https://github.com/pydantic/logfire/compare/v2.10.0...v2.11.0
[v2.11.1]: https://github.com/pydantic/logfire/compare/v2.11.0...v2.11.1
[v3.0.0]: https://github.com/pydantic/logfire/compare/v2.11.1...v3.0.0
4 changes: 2 additions & 2 deletions docs/get-started/traces.md → docs/concepts.md
Original file line number Diff line number Diff line change
@@ -29,7 +29,7 @@ with logfire.span('counting size of {cwd=}', cwd=cwd):
logfire.info('total size of {cwd} is {size} bytes', cwd=cwd, size=total_size)
```

![Counting size of loaded files screenshot](../images/logfire-screenshot-first-steps-load-files.png)
![Counting size of loaded files screenshot](images/logfire-screenshot-first-steps-load-files.png)

---

@@ -55,7 +55,7 @@ with logfire.span('Asking the user for their {question}', question='birthday'):
2. Attempt to extract a date from the user input. If any exception is raised, the outer span will include the details of the exception.
3. This will log for example `dob=2000-01-01 age=datetime.timedelta(days=8838)` with `debug` level.

![Logfire hello world screenshot](../images/index/logfire-screenshot-hello-world-age.png)
![Logfire hello world screenshot](images/index/logfire-screenshot-hello-world-age.png)

---

9 changes: 9 additions & 0 deletions docs/extra/tweaks.css
Original file line number Diff line number Diff line change
@@ -70,3 +70,12 @@ li.md-nav__item>a[href^="#logfire.Logfire.instrument_fastapi("],
li.md-nav__item>a[href^="#logfire.configure("] {
display: inline-block;
}

.md-typeset .doc h5 {
text-transform: none;
font-size: 1.1em;
}

.md-search__output em {
color: var(--md-primary-fg-color);
}
66 changes: 0 additions & 66 deletions docs/guides/advanced/backfill.md

This file was deleted.

7 changes: 0 additions & 7 deletions docs/guides/advanced/index.md

This file was deleted.

48 changes: 0 additions & 48 deletions docs/guides/index.md

This file was deleted.

2 changes: 1 addition & 1 deletion docs/guides/onboarding-checklist/add-auto-tracing.md
Original file line number Diff line number Diff line change
@@ -22,7 +22,7 @@ main()
```

!!! note
Generator functions will not be traced for reasons explained [here](../advanced/generators.md).
Generator functions will not be traced for reasons explained [here](../../reference/advanced/generators.md).

## Only tracing functions above a minimum duration

4 changes: 2 additions & 2 deletions docs/guides/onboarding-checklist/index.md
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ fix bugs, analyze user behavior, and make data-driven decisions.
!!! note

If you aren't familiar with traces and spans, start with the
[Tracing with Spans](../../get-started/traces.md) page.
[Tracing with Spans](../../concepts.md) page.

#### Logfire Onboarding Checklist

@@ -31,6 +31,6 @@ introduction to the Logfire Web UI and show you how to interact with the data yo
!!! note

For a more comprehensive walkthrough of the Logfire Web UI and its features, you may be interested in our
[Logfire Web UI Guide](../web-ui/index.md).
[Logfire Web UI Guide](../web-ui/live.md).

Let's get started! :rocket:
5 changes: 4 additions & 1 deletion docs/guides/web-ui/alerts.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
!!! warning "Alerts in Beta"
The Alerts feature is still under construction, it could break or behave in unexpected ways. Please [create an issue](https://github.com/pydantic/logfire/issues/new/choose){:target="\_blank"} if you find bugs, get frustrated, or have questions.
The Alerts feature is still under construction, it could break or behave in unexpected ways.

Please [create an issue](https://github.com/pydantic/logfire/issues/new/choose){:target="\_blank"}
if you find bugs, get frustrated, or have questions.

With **Logfire**, you can set up alerts to notify you when certain conditions are met.

6 changes: 0 additions & 6 deletions docs/guides/web-ui/index.md

This file was deleted.

Loading