Beeswarm chart
One dot per item along a value axis with deterministic non-overlapping packing, group colours, hover labels and a median line.
Preview
p95 latency per service
90 services, last 24 hRustGoNode
| search-30 | Rust | 27 |
|---|---|---|
| billing-39 | Rust | 32 |
| api-33 | Rust | 39 |
| auth-21 | Rust | 46 |
| auth-69 | Rust | 49 |
| web-66 | Rust | 52 |
| api-09 | Rust | 53 |
| media-48 | Rust | 54 |
| api-57 | Rust | 57 |
| worker-75 | Rust | 60 |
| media-88 | Go | 62 |
| billing-63 | Rust | 66 |
| billing-15 | Rust | 70 |
| media-24 | Rust | 70 |
| edge-36 | Rust | 71 |
| search-54 | Rust | 72 |
| billing-31 | Go | 73 |
| edge-60 | Rust | 74 |
| media-72 | Rust | 74 |
| worker-27 | Rust | 75 |
| billing-55 | Go | 77 |
| api-81 | Rust | 79 |
| auth-45 | Rust | 80 |
| worker-03 | Rust | 81 |
| search-06 | Rust | 81 |
| web-42 | Rust | 83 |
| api-73 | Go | 86 |
| billing-07 | Go | 87 |
| api-25 | Go | 88 |
| edge-84 | Rust | 88 |
| edge-04 | Go | 90 |
| edge-12 | Rust | 92 |
| worker-51 | Rust | 92 |
| web-10 | Go | 94 |
| worker-19 | Go | 94 |
| web-18 | Rust | 95 |
| search-22 | Go | 95 |
| auth-13 | Go | 97 |
| billing-87 | Rust | 98 |
| media-16 | Go | 100 |
| media-64 | Go | 102 |
| web-34 | Go | 104 |
| media-40 | Go | 104 |
| api-01 | Go | 105 |
| worker-43 | Go | 106 |
| search-70 | Go | 106 |
| web-58 | Go | 107 |
| auth-61 | Go | 107 |
| search-46 | Go | 109 |
| web-90 | Rust | 112 |
| search-78 | Rust | 114 |
| billing-47 | Node | 115 |
| worker-67 | Go | 116 |
| edge-44 | Node | 118 |
| web-82 | Go | 118 |
| api-49 | Go | 122 |
| edge-28 | Go | 124 |
| auth-85 | Go | 125 |
| api-65 | Node | 128 |
| auth-53 | Node | 129 |
| edge-76 | Go | 135 |
| billing-79 | Go | 137 |
| edge-52 | Go | 139 |
| worker-35 | Node | 140 |
| web-50 | Node | 142 |
| web-02 | Node | 143 |
| worker-11 | Node | 146 |
| auth-77 | Node | 147 |
| api-17 | Node | 148 |
| media-32 | Node | 149 |
| search-14 | Node | 151 |
| search-62 | Node | 152 |
| auth-37 | Go | 158 |
| auth-05 | Node | 159 |
| web-26 | Node | 159 |
| auth-29 | Node | 165 |
| worker-59 | Node | 169 |
| billing-23 | Node | 170 |
| media-56 | Node | 170 |
| edge-68 | Node | 173 |
| billing-71 | Node | 173 |
| web-74 | Node | 190 |
| api-41 | Node | 197 |
| search-86 | Node | 197 |
| worker-83 | Node | 200 |
| media-80 | Node | 201 |
| search-38 | Node | 358 |
| api-89 | Node | 377 |
| edge-20 | Node | 385 |
| media-08 | Node | 388 |
Install
Pro source requires Pebble Pro. Try the full preview above.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| data | { key: string; label: string; value: number; group?: string }[] | — | One dot per item. |
| groups | { key: string; label: string; color?: string }[] | [] | Groups for colour and the legend. |
| label | string | — | Accessible name and table caption. |
| radius | number | 5 | Dot radius in px. |
| showMedian | boolean | true | Draw a dashed median line. |
| valueLabel | string | — | Axis title. |
| valueFormatter | (value: number) => string | 1 decimal | Formats values. |
Pro component
Try the full preview above. Editable source and build guides require Pebble Pro.
