-
Notifications
You must be signed in to change notification settings - Fork 74
New Example: Monitoring Data Pipelines #230
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
Merged
Merged
Changes from all commits
Commits
Show all changes
276 commits
Select commit
Hold shift + click to select a range
3f6a10a
feat: add .gitignore to static-next-server (#18)
oddgrd 1b8e38e
fix: gitignore filename (#19)
oddgrd c28f163
chore: v0.10.0 (#20)
oddgrd 3ad8b14
feat: gitignore static folder, but allow it for shuttle (#21)
oddgrd 94c5dd3
chore: v0.11.0 (#22)
oddgrd 2a599dd
chore: v0.11.3 (#25)
oddgrd ecc256f
chore(static-next-server/README): added notes on why static... (#31)
iulianbarbu 64b2cd2
feat: shuttle next (#27)
chesedo 53b6911
chore: v0.13.0 (#33)
oddgrd 2642519
chore: bump static folder to 0.13.1 (#34)
oddgrd da693ce
feat: workspace example (#35)
chesedo 5d7268b
Update project cmd (#36)
jonaro00 099b409
chore: v0.14.0 (#37)
oddgrd 6fd2a8a
feat examples: add rocket dynamic template (shuttle-static-folder) ex…
jhawkesworth 61ad08a
chore: v0.15.0 (#39)
oddgrd 66ad6cf
Basic Service impl
morlinbrot d2dab07
Add simple job execution
morlinbrot 412febb
run CronService job in a loop
urbaniak 53d4fe3
Add some documentation
morlinbrot 2eb52d5
Use tracing for output, clean up dependencies
morlinbrot 026fc30
feat: changing '/hello' routes to '/' (#41)
mikegin 43c0758
misc: rename examples to shuttle-examples (#44)
chesedo 0c5b8c2
chore: v0.16.0 (#46)
oddgrd 3024595
Basic Axum router impl
morlinbrot 391f119
style: Added rustfmt.toml (#45)
ethanholz cdf353d
Add request.sh for testing, simplify router
morlinbrot 0991a84
Add shuttle-persist to the mix
morlinbrot d05f9df
Impl CrontabService with persist, write new schedules to persist
morlinbrot d75767f
Fix unwrap panics
morlinbrot d5a61a8
Add README.md
morlinbrot c1f1ad4
Add CronRunner to run jobs
morlinbrot 5c9957b
Move CronService to its own crate
morlinbrot cb63060
Update request.sh with usable url
morlinbrot 1633d46
Make use of CrontabService::new now accepting a router
morlinbrot 58a1556
Adapt to changes in shuttle_crontab for code review part 1
morlinbrot 6681065
chore: bump salvo
oddgrd 63d2447
Refactor back into an example
morlinbrot 3dff726
Rename to request-scheduler
morlinbrot 4e43e38
Update documentation
morlinbrot 579ef1c
Delete old crontab example
morlinbrot 5881b39
Clean up
morlinbrot 10bb391
Merge pull request #47 from morlinbrot/feat/crontab-api
iulianbarbu 8f1d504
Merge pull request #48 from oddgrd/chore/bump-salvo
iulianbarbu a4d5b8e
feat: saas example (#50)
joshua-mo-143 0fe92a1
fix: make Stripe payment price a secret instead of hardcoding (#51)
joshua-mo-143 9ade4b1
chore: v0.17.0 (#49)
oddgrd 724f065
fix call to grab_secrets (#53)
vim-zz dc9d1ff
feat: Add an axum/with-state example using updated generic AxumServic…
morlinbrot 2a7ce1f
chore: v0.18.0 (#56)
oddgrd 09895b1
feat: template for empty custom service (#59)
jonaro00 85f4cb2
fix: remove unnecessary version tags (#58)
jonaro00 d7b5ab8
Update & simplify axum examples, bump versions (#60)
jonaro00 d6eaf17
chore: v0.19.0 (#63)
oddgrd 6b9eb2f
chore: v0.20.0 (#68)
oddgrd 34d0cb4
Revert "chore: v0.20.0 (#68)" (#69)
oddgrd 60596a0
feat: add turso example (#67)
Kazy 6e23185
Revert "Revert "chore: v0.20.0 (#68)" (#69)" (#70)
oddgrd 5b02a89
feat: document new init command, add community examples list (#65)
jonaro00 398ac9c
chore: v0.21.0 (#71)
oddgrd 2262f8a
custom-resource: added pdo example (#73)
iulianbarbu bd9086e
Chore/v0.22.0 (#76)
oddgrd d286f41
chore: bump sqlx in resources (#75)
oddgrd fdd0ceb
Add example of how to run a standalone binary alongside the Shuttle o…
jonaro00 562f967
chore: v0.23.0 (#79)
oddgrd 6837de8
feat: examples for injecting a custom tracing layer (#78)
AlphaKeks a079b84
chore: v0.24.0 release (#80)
iulianbarbu d617b76
Added a fullstack Rust template to the 'Community Examples' section o…
TylerBloom edeb214
add axum yew webapp example (#82)
07f1d3f
chore: v0.25.0 (#83)
oddgrd ac11cb1
feat: add shuttle-metadata example (#81)
orhun c7a46af
remove example list entry
jonaro00 84bc104
feat: add custom-tracing-subscriber example (#84)
orhun cadded9
chore: v0.26.0 (#85)
oddgrd c781aa6
Revert "chore: v0.26.0 (#85)" (#86)
oddgrd 4a6c33d
Revert "Revert "chore: v0.26.0 (#85)" (#86)" (#87)
oddgrd 1e62759
ci: Create github action that runs `cargo clippy` and `cargo fmt` (#40)
8ff7ff0
chore: v0.27.0 (#89)
oddgrd 0bffd33
feat: remove uses of static-folder (#88)
jonaro00 3b68a7d
feat: set rocket static files dir with rocket.toml (#91)
oddgrd 9ef894c
Merge remote-tracking branch 'upstream/main' into develop
oddgrd 14e7062
Merge pull request #90 from shuttle-hq/develop
oddgrd 4712db6
feat: fix auth for SaaS template (#95)
joshua-mo-143 cfc433f
chore: v0.28.0
oddgrd acdcb0f
fix: polishing of starter templates (#97)
jonaro00 f3a9857
chore: v0.29.0 (#98)
oddgrd fe9cae7
Custom shuttle binary filename (#99)
jonaro00 7e07f18
refactor: Add examples (#93)
joshua-mo-143 67fde9a
chore: update libsql-client version in axum turso (#100) (#103)
oddgrd 75c98cf
chore: v0.30.0 (#104)
oddgrd 38c466c
Add shuttle-template-actix (#106)
a7c7fe5
Add GitHub OAuth community example (#107)
robjtede 7d5469f
bug: revert turso version update (#108)
chesedo 7226d98
chore: v0.31.0 (#109)
oddgrd 25d8771
fix: migration filename (#110)
jonaro00 153a727
chore: v0.32.0 (#111)
oddgrd 281b8a0
improvement: rocket 0.5.0-rc4 (#112)
e7e2d4f
chore: v0.33.0 (#113)
oddgrd f8da105
improvement: rocket 0.5.0 stable (#114)
216aa7f
chore: v0.34.0 (#115)
jonaro00 1205ee6
add a full stack CRUD template using Yew, Rocket, and Sled (#116)
wiseaidev 4acc85f
docs: add Bevy example (#102)
joshua-mo-143 20886ea
fix: allow template to be used with --from flag (#117)
joshua-mo-143 58bdd5e
chore: v0.35.0 (#118)
oddgrd 56f235d
chore: remove develop branch suggestion from pr template (#122)
oddgrd 7c2f159
chore: update axum examples to axum 0.7 (#123)
jonaro00 bbaa79f
chore: bump salvo (#121)
dalton-oliveira b3dba7a
chore: v0.36.0 (#125)
oddgrd 898bda0
chore: update poem to 2.0.0, shuttle-poem to 0.37.0 (#126)
paulotten 37c6135
feat: update everything to new ResourceBuilder + feature flags (#127)
jonaro00 e2397bb
feat: qdrant resource example (#64)
paulotten 420080f
chore: v0.37.0
jonaro00 cd95660
feat: update serenity and poise examples to use serenity 0.12 (#129)
jonaro00 4edebb5
Merge pull request #128 from shuttle-hq/develop
jonaro00 3a41ef9
feat: cron example with apalis (#131)
joshua-mo-143 7836b78
feat(shuttle-turso): update turso example to use libsql (#132)
Mouwrice 5ed3730
fix: move static files to proper directory (#119)
joshua-mo-143 f09baac
chore: v0.38.0 (#134)
jonaro00 5df025b
merge upstream/main
jonaro00 e89ed9b
Merge pull request #135 from shuttle-hq/develop
jonaro00 d1441fa
fix: saas template local run recommendation, npm update (#136)
jonaro00 a37ef62
SaaS: NextJS14, Turbowatch, Bundle Anaylzer (#137)
ccmvn 62064ca
feat: actix + react + clerk example (#133)
sourabpramanik c8fbee2
add loco framework template (#139)
kaplanelad 60083ca
chore: v0.39.0
jonaro00 db1bb32
chore: v0.39.0
jonaro00 893c5a4
feat: add Feb 2024 benchmark results, add salvo image rescaler (#143)
jonaro00 88b5aae
feat: htmx template (#138)
joshua-mo-143 1730b7b
feat: Add opendal hello world example (#142)
Xuanwo 20c9dff
--idle-minutes 0 added at start (#141)
ccmvn b82ff31
chore: v0.40.0 (#147)
jonaro00 a0791d7
feat: template definition system, remove superflous templates (#148)
jonaro00 12ce8a7
chore: v0.41.0 (#151)
jonaro00 37adada
feat: update templates to latest schema (#150)
jonaro00 5ca1680
fix: replace deprecated fn call in example `rocket/jwt-authentication…
supleed2 90bc717
add serenity weather forecast bot example (#146)
Lonanche 3341724
feat: bevy+axum hello world (#144)
joshua-mo-143 732d8b1
feat: Oauth2 template (#155)
joshua-mo-143 5010bd4
chore: move secrets & metadata to runtime (#153)
jonaro00 e9e2ab5
chore: v0.42.0
jonaro00 ede5a23
ci: no matrix fail fast (#158)
jonaro00 c0cae7b
ci: use patches for shuttle/main on develop branch (#154)
sourabpramanik e0d4934
fix: more removals of shuttle-secrets
jonaro00 f8c944a
ci: change shuttle checkout dir
jonaro00 588462f
Merge pull request #157 from shuttle-hq/develop
jonaro00 42dcc1a
chore: update libsql dep in axum/turso example (#159)
Jaco-Minnaar 7629447
chore: v0.43.0
jonaro00 e4401fb
Merge pull request #160 from shuttle-hq/develop
jonaro00 7d45c76
feat: bump poem version (#161)
sourabpramanik 1d72701
fix: poem AFIT
jonaro00 6f2f503
fix: clippy
jonaro00 55e473a
feat: update turso resource output type in turso example (#164)
joshua-mo-143 19dda45
chore: v0.44.0 (#165)
oddgrd c5ae2d2
Merge pull request #166 from shuttle-hq/develop
oddgrd ca678a9
feat: templates tags, logos & some readmes (#163)
jonaro00 1dd14da
chore: v0.45.0 (#167)
jonaro00 9c3c4f1
Update templates.toml
chrisaddy f7d2770
Merge pull request #168 from chrisaddy/main
oddgrd e8588a6
feat: feature flag example (#171)
jonaro00 0384527
chore: 0.46.0
jonaro00 17e58f9
chore: merge develop into main for 0.46.0
jonaro00 5743125
fix: opendal version (#173)
jonaro00 613f54d
Add shell true to turbowatch in `fullstack-templates/saas`
Ancientkingg f114453
Merge pull request #176 from Ancientkingg/main
oddgrd 5576692
chore: upgrade qdrant to 1.10.1 (#177)
oddgrd 0d0693d
chore: 0.47.0 (#178)
jonaro00 3480af7
feat: openai example (#180)
jonaro00 daf1aaa
chore: merge develop into main for 0.47.0
jonaro00 9cc7a8e
bump sqlx to 0.8 in database examples (#181)
cda84a7
chore: bump sqlx to 0.8.2
jonaro00 3ec0743
bump loco version to 0.9.0 (#186)
kaplanelad 3f2b1c4
chore: ignore shuttle files
jonaro00 548c82c
Merge branch 'main' into develop
jonaro00 d08ff9d
chore: 0.48.0
jonaro00 5eb614e
chore: merge develop into main for v0.48.0
jonaro00 1a807fe
actix web + axum Shuttle.toml
jonaro00 3f35b74
bevy - rocket Shuttle.toml
jonaro00 2906047
fix: mentions of cargo shuttle
jonaro00 6c015b0
final Shuttle.toml
jonaro00 ae1a394
fix: templates.toml
jonaro00 32d0904
chore: merge develop into main for shuttle.dev
jonaro00 330c626
nit: move ci script
jonaro00 c3ee721
nit
jonaro00 a6b5f0d
readme link
jonaro00 e6a0199
fix: websocket examples urls
jonaro00 25fd5de
chore: v0.49.0
jonaro00 c23da29
chore: merge develop into main for 0.49.0
jonaro00 4185a78
feat: update openai template (#193)
joshua-mo-143 e45e918
chore: update shuttle-cron to latest versions and persist cron jobs (…
geofmureithi b1cdaac
docs: add missing word (#195)
c-git b1bea52
improvement: update libsql to 0.6.0 in Axum Turso example (#197)
3dcb936
chore: v0.50.0
oddgrd abc3d8e
Merge pull request #198 from shuttle-hq/develop
oddgrd 5e2e5f2
feat: rewrite url shortener with pg opendal
jonaro00 8f60756
fix: feature name
jonaro00 592388f
feat: use axum 0.7/0.8 feature flags (#200)
jonaro00 26bb0b7
url shortener use serde json operator
jonaro00 d68c4ff
chore: bump salvo examples
jonaro00 9bf3f60
fix: bump opendal-memory example
jonaro00 391f368
chore: v0.51.0
jonaro00 802e30f
chore: merge develop into main for v0.51.0
jonaro00 73bf022
chore: bump loco to 0.14.0 (#202)
jonaro00 17959f6
chore: remove custom service that depends on shuttle-persist
jonaro00 82ead55
links
jonaro00 ce1653b
rocket: Include Rocket.toml in build assets (#204)
kikniknik e91535a
chore: v0.52.0
jonaro00 b12c2e6
chore: merge develop into main for 0.52.0
jonaro00 25ebe6d
chore: v0.35.0
jonaro00 937b42c
bump async-openai example
jonaro00 7833761
chore: v0.53.0
jonaro00 6408406
chore: v0.54.0
jonaro00 09ba0af
fix: tag order on postgres examples
jonaro00 33adbac
chore: v0.54.0
jonaro00 7707825
feat: add initial rama examples (#205)
GlenDC a1a59fd
fix: add rama templates entries
jonaro00 82baf9c
chore: v0.55.0
jonaro00 637c010
fix versions
jonaro00 f13cf19
chore: merge develop into main for v0.55.0
jonaro00 1f4943b
Add BetterStack resource metrics dashboard
shaaza e23b7e9
Merge pull request #215 from shuttle-hq/codex/create-telemetry-better…
shaaza 470d745
nit: delete unused secrets file
jonaro00 20d8cd0
chore: v0.56.0
jonaro00 1d28510
chore: merge develop into main for v0.56.0
jonaro00 283d9a4
New Template: Axum AI Assisted (#221)
dcodesdev 1eae9bc
Updated a template to use axum 0.8 (#220)
dcodesdev 039d7d0
feat: Axum Todo list template (#216)
jonaro00 3154023
New Template: SSE MCP Server (#223)
dcodesdev 1ffca03
chore: update loco for 0.56 (#222)
jonaro00 6d7b9f2
New Example: SSE MCP Server with OAuth (#224)
dcodesdev 9e0c254
chore: services cleanup, bumps (#226)
jonaro00 75b6636
fmt
jonaro00 0866919
chore: 0.57.0
jonaro00 6afd79e
New Axum Template (#228)
dcodesdev b727c0e
nits
jonaro00 9777d91
chore: v0.57.0
jonaro00 75861dd
New Template: Snippet Sharing App (#229)
dcodesdev 93f1aa8
Create data pipeline monitoring
AdepojuJeremy 964516f
Delete axum/data pipeline monitoring
AdepojuJeremy 4d503a8
Re-add Polars + OpenTelemetry pipeline example under axum templates (…
AdepojuJeremy 3bf28fb
Re-add Polars + OpenTelemetry pipeline example under axum templates (…
AdepojuJeremy d359218
Merge branch 'main' into main
dcodesdev cd69950
Save current changes before running clippy --fix
AdepojuJeremy d7fe69a
Apply cargo fmt and clippy fixes
AdepojuJeremy ccc0db4
Add polars-otel-shuttle entry to templates.toml
AdepojuJeremy 0732c59
WIP: current edits before clippy fixes
AdepojuJeremy ce634a2
Add polars-otel-shuttle entry to templates.toml
AdepojuJeremy a34ade4
Merge branch 'main' of https://github.com/AdepojuJeremy/shuttle-examples
AdepojuJeremy 8c86ed8
Save changes before clippy fixes
AdepojuJeremy c1637ef
Save changes before clippy fixes
AdepojuJeremy 78c66b0
Address maintainer feedback and fix CI issues:
AdepojuJeremy 498cc89
Update README.md
AdepojuJeremy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| [package] | ||
| name = "polars-otel-shuttle" | ||
| version = "0.1.0" | ||
| edition = "2021" | ||
|
|
||
| [features] | ||
| bench-cli = [] # local CLI binary | ||
| otel-otlp = ["opentelemetry-otlp"] # enable real OTLP exporter when you want it | ||
|
|
||
| [dependencies] | ||
| anyhow = "1" | ||
| serde = { version = "1", features = ["derive"] } | ||
| serde_json = "1" | ||
|
|
||
| # Web (for Shuttle build) | ||
| axum = { version = "0.8", features = ["json"] } | ||
| tower = "0.5" | ||
| tower-http = { version = "0.6", features = ["cors", "trace"] } | ||
|
|
||
| # Tracing | ||
| tracing = "0.1" | ||
| tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt", "json", "time"] } | ||
| time = { version = "0.3", features = ["formatting", "macros"] } | ||
| tracing-opentelemetry = "0.31" | ||
|
|
||
| # OpenTelemetry (core + SDK; OTLP exporter is optional via feature) | ||
| opentelemetry = { version = "0.30", features = ["trace"] } | ||
| opentelemetry_sdk = { version = "0.30", features = ["trace", "rt-tokio"] } | ||
| opentelemetry-otlp = { version = "0.30", features = ["http-proto", "tls"], optional = true } | ||
|
|
||
| # Runtime (new enough to satisfy shuttle-runtime) | ||
| tokio = { version = "1.47.0", features = ["rt-multi-thread", "macros"] } | ||
|
|
||
| # ETL | ||
| polars = { version = "0.49", features = [ | ||
| "lazy", "csv", "parquet", "fmt", "strings", "dtype-date", "dtype-datetime" | ||
| ] } | ||
| chrono = { version = "0.4", features = ["clock"] } | ||
| comfy-table = "7" | ||
|
|
||
| # Shuttle (only used on deploy) | ||
| shuttle-runtime = { version = "0.56", features = ["setup-otel-exporter"] } | ||
| shuttle-axum = "0.56" |
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Let's make this concise, it's too long. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,55 @@ | ||
| # Polars ETL with OpenTelemetry | ||
|
|
||
| An ETL pipeline using Polars for data processing and OpenTelemetry for observability, deployable on Shuttle. | ||
|
|
||
| ## What it does | ||
|
|
||
| - Processes CSV data with Polars (load → clean → aggregate → filter/sort → save) | ||
| - Exposes HTTP endpoints via Axum | ||
| - Emits metrics and traces via OpenTelemetry | ||
| - Integrates with Better Stack for monitoring (when deployed on Shuttle) | ||
|
|
||
| ## Running locally | ||
|
|
||
| **ETL benchmark:** | ||
| ```bash | ||
| RUST_LOG=info cargo run --release --features bench-cli | ||
| ``` | ||
|
|
||
| **Web service:** | ||
| ```bash | ||
| cargo run --release | ||
| ``` | ||
|
|
||
| Place your CSV file at `./data/yellow_tripdata_2015-01.csv` or set `DATA_PATH=/path/to/file.csv`. | ||
|
|
||
| ## Deploy to Shuttle | ||
|
|
||
| ```bash | ||
| shuttle deploy | ||
| ``` | ||
|
|
||
| ## Endpoints | ||
|
|
||
| - `GET /` - Health check | ||
| - `GET /health` - Health check with metrics | ||
| - `GET /benchmark` - Returns ETL metrics and emits telemetry events | ||
|
|
||
| ## Observability | ||
|
|
||
| The service emits OpenTelemetry metrics: | ||
| - `monotonic_counter.http_requests_total` - Request counts | ||
| - `histogram.request_duration_ms` - Request latency | ||
| - `histogram.*_time_ms` - ETL stage timings | ||
| - `monotonic_counter.rows_processed` - Data throughput | ||
|
|
||
| When deployed on Shuttle with Better Stack integration enabled, these automatically appear in your telemetry dashboard. | ||
|
|
||
| ## Configuration | ||
|
|
||
| **Environment variables:** | ||
| - `DATA_PATH` - Path to CSV file (default: `data/yellow_tripdata_2015-01.csv`) | ||
|
|
||
| **Features:** | ||
| - `bench-cli` - Enables local ETL benchmark | ||
| - `otel-otlp` - Enables OTLP export (for non-Shuttle deployments) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| name = "polars-otel-shuttle" | ||
| # Shuttle uses your #[shuttle_runtime::main] entry point in src/main.rs |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make sure there are no unused dependencies here.