container-superposition 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/README.md +843 -0
  2. package/dist/scripts/init.d.ts +3 -0
  3. package/dist/scripts/init.d.ts.map +1 -0
  4. package/dist/scripts/init.js +1190 -0
  5. package/dist/scripts/init.js.map +1 -0
  6. package/dist/scripts/migrate-to-manifests.d.ts +12 -0
  7. package/dist/scripts/migrate-to-manifests.d.ts.map +1 -0
  8. package/dist/scripts/migrate-to-manifests.js +230 -0
  9. package/dist/scripts/migrate-to-manifests.js.map +1 -0
  10. package/dist/tool/questionnaire/composer.d.ts +6 -0
  11. package/dist/tool/questionnaire/composer.d.ts.map +1 -0
  12. package/dist/tool/questionnaire/composer.js +1232 -0
  13. package/dist/tool/questionnaire/composer.js.map +1 -0
  14. package/dist/tool/readme/markdown-parser.d.ts +30 -0
  15. package/dist/tool/readme/markdown-parser.d.ts.map +1 -0
  16. package/dist/tool/readme/markdown-parser.js +139 -0
  17. package/dist/tool/readme/markdown-parser.js.map +1 -0
  18. package/dist/tool/readme/readme-generator.d.ts +9 -0
  19. package/dist/tool/readme/readme-generator.d.ts.map +1 -0
  20. package/dist/tool/readme/readme-generator.js +422 -0
  21. package/dist/tool/readme/readme-generator.js.map +1 -0
  22. package/dist/tool/schema/custom-loader.d.ts +17 -0
  23. package/dist/tool/schema/custom-loader.d.ts.map +1 -0
  24. package/dist/tool/schema/custom-loader.js +149 -0
  25. package/dist/tool/schema/custom-loader.js.map +1 -0
  26. package/dist/tool/schema/overlay-loader.d.ts +47 -0
  27. package/dist/tool/schema/overlay-loader.d.ts.map +1 -0
  28. package/dist/tool/schema/overlay-loader.js +252 -0
  29. package/dist/tool/schema/overlay-loader.js.map +1 -0
  30. package/dist/tool/schema/types.d.ts +212 -0
  31. package/dist/tool/schema/types.d.ts.map +1 -0
  32. package/dist/tool/schema/types.js +5 -0
  33. package/dist/tool/schema/types.js.map +1 -0
  34. package/docs/README.md +308 -0
  35. package/docs/architecture.md +233 -0
  36. package/docs/creating-overlays.md +549 -0
  37. package/docs/custom-patches.md +540 -0
  38. package/docs/dependencies.md +279 -0
  39. package/docs/examples/custom-patches-example.md +85 -0
  40. package/docs/examples.md +576 -0
  41. package/docs/messaging-comparison.md +265 -0
  42. package/docs/messaging-quick-start.md +385 -0
  43. package/docs/observability-workflow.md +537 -0
  44. package/docs/overlay-manifest-refactoring.md +214 -0
  45. package/docs/overlay-metadata-archive.md +54 -0
  46. package/docs/overlays.md +523 -0
  47. package/docs/presets-architecture.md +498 -0
  48. package/docs/presets.md +366 -0
  49. package/docs/publishing.md +476 -0
  50. package/docs/quick-reference.md +326 -0
  51. package/docs/ux.md +170 -0
  52. package/features/README.md +85 -0
  53. package/features/cross-distro-packages/README.md +146 -0
  54. package/features/cross-distro-packages/devcontainer-feature.json +20 -0
  55. package/features/cross-distro-packages/install.sh +58 -0
  56. package/features/local-secrets-manager/devcontainer-feature.json +18 -0
  57. package/features/local-secrets-manager/install.sh +127 -0
  58. package/features/project-scaffolder/devcontainer-feature.json +24 -0
  59. package/features/project-scaffolder/install.sh +100 -0
  60. package/features/team-conventions/devcontainer-feature.json +24 -0
  61. package/features/team-conventions/install.sh +93 -0
  62. package/overlays/.registry/README.md +14 -0
  63. package/overlays/.registry/base-images.yml +26 -0
  64. package/overlays/.registry/base-templates.yml +7 -0
  65. package/overlays/README.md +155 -0
  66. package/overlays/alertmanager/.env.example +5 -0
  67. package/overlays/alertmanager/README.md +465 -0
  68. package/overlays/alertmanager/alert-rules.yml +56 -0
  69. package/overlays/alertmanager/alertmanager.yml +42 -0
  70. package/overlays/alertmanager/devcontainer.patch.json +12 -0
  71. package/overlays/alertmanager/docker-compose.yml +20 -0
  72. package/overlays/alertmanager/overlay.yml +17 -0
  73. package/overlays/alertmanager/setup.sh +53 -0
  74. package/overlays/alertmanager/verify.sh +31 -0
  75. package/overlays/aws-cli/README.md +473 -0
  76. package/overlays/aws-cli/devcontainer.patch.json +13 -0
  77. package/overlays/aws-cli/overlay.yml +13 -0
  78. package/overlays/azure-cli/README.md +551 -0
  79. package/overlays/azure-cli/devcontainer.patch.json +8 -0
  80. package/overlays/azure-cli/overlay.yml +13 -0
  81. package/overlays/bun/README.md +312 -0
  82. package/overlays/bun/devcontainer.patch.json +41 -0
  83. package/overlays/bun/overlay.yml +16 -0
  84. package/overlays/bun/setup.sh +79 -0
  85. package/overlays/bun/verify.sh +30 -0
  86. package/overlays/codex/README.md +128 -0
  87. package/overlays/codex/devcontainer.patch.json +3 -0
  88. package/overlays/codex/overlay.yml +14 -0
  89. package/overlays/codex/setup.sh +24 -0
  90. package/overlays/codex/verify.sh +30 -0
  91. package/overlays/commitlint/README.md +333 -0
  92. package/overlays/commitlint/devcontainer.patch.json +8 -0
  93. package/overlays/commitlint/overlay.yml +16 -0
  94. package/overlays/commitlint/setup.sh +234 -0
  95. package/overlays/direnv/README.md +504 -0
  96. package/overlays/direnv/devcontainer.patch.json +6 -0
  97. package/overlays/direnv/overlay.yml +13 -0
  98. package/overlays/direnv/setup.sh +139 -0
  99. package/overlays/docker-in-docker/README.md +534 -0
  100. package/overlays/docker-in-docker/devcontainer.patch.json +10 -0
  101. package/overlays/docker-in-docker/overlay.yml +13 -0
  102. package/overlays/docker-sock/README.md +256 -0
  103. package/overlays/docker-sock/devcontainer.patch.json +9 -0
  104. package/overlays/docker-sock/docker-compose.yml +8 -0
  105. package/overlays/docker-sock/overlay.yml +13 -0
  106. package/overlays/dotnet/README.md +147 -0
  107. package/overlays/dotnet/devcontainer.patch.json +51 -0
  108. package/overlays/dotnet/global-tools.txt +24 -0
  109. package/overlays/dotnet/overlay.yml +13 -0
  110. package/overlays/dotnet/setup.sh +51 -0
  111. package/overlays/dotnet/verify.sh +26 -0
  112. package/overlays/gcloud/README.md +269 -0
  113. package/overlays/gcloud/devcontainer.patch.json +14 -0
  114. package/overlays/gcloud/overlay.yml +14 -0
  115. package/overlays/gcloud/verify.sh +52 -0
  116. package/overlays/git-helpers/README.md +168 -0
  117. package/overlays/git-helpers/devcontainer.patch.json +33 -0
  118. package/overlays/git-helpers/overlay.yml +15 -0
  119. package/overlays/git-helpers/setup.sh +91 -0
  120. package/overlays/go/README.md +293 -0
  121. package/overlays/go/devcontainer.patch.json +43 -0
  122. package/overlays/go/overlay.yml +15 -0
  123. package/overlays/go/setup.sh +33 -0
  124. package/overlays/go/verify.sh +40 -0
  125. package/overlays/grafana/.env.example +9 -0
  126. package/overlays/grafana/README.md +462 -0
  127. package/overlays/grafana/dashboard-provider.yml +11 -0
  128. package/overlays/grafana/dashboards/observability-overview.json +263 -0
  129. package/overlays/grafana/devcontainer.patch.json +12 -0
  130. package/overlays/grafana/docker-compose.yml +27 -0
  131. package/overlays/grafana/grafana-datasources.yml +57 -0
  132. package/overlays/grafana/overlay.yml +21 -0
  133. package/overlays/grafana/verify.sh +34 -0
  134. package/overlays/jaeger/.env.example +7 -0
  135. package/overlays/jaeger/README.md +867 -0
  136. package/overlays/jaeger/devcontainer.patch.json +12 -0
  137. package/overlays/jaeger/docker-compose.yml +17 -0
  138. package/overlays/jaeger/overlay.yml +19 -0
  139. package/overlays/java/README.md +267 -0
  140. package/overlays/java/devcontainer.patch.json +44 -0
  141. package/overlays/java/overlay.yml +16 -0
  142. package/overlays/java/setup.sh +41 -0
  143. package/overlays/java/verify.sh +42 -0
  144. package/overlays/just/README.md +443 -0
  145. package/overlays/just/devcontainer.patch.json +3 -0
  146. package/overlays/just/overlay.yml +13 -0
  147. package/overlays/just/setup.sh +182 -0
  148. package/overlays/kubectl-helm/README.md +660 -0
  149. package/overlays/kubectl-helm/devcontainer.patch.json +10 -0
  150. package/overlays/kubectl-helm/overlay.yml +13 -0
  151. package/overlays/loki/.env.example +5 -0
  152. package/overlays/loki/README.md +1156 -0
  153. package/overlays/loki/devcontainer.patch.json +12 -0
  154. package/overlays/loki/docker-compose.yml +18 -0
  155. package/overlays/loki/loki-config.yaml +45 -0
  156. package/overlays/loki/overlay.yml +17 -0
  157. package/overlays/minio/.env.example +9 -0
  158. package/overlays/minio/README.md +639 -0
  159. package/overlays/minio/devcontainer.patch.json +30 -0
  160. package/overlays/minio/docker-compose.yml +28 -0
  161. package/overlays/minio/overlay.yml +18 -0
  162. package/overlays/minio/setup.sh +61 -0
  163. package/overlays/minio/verify.sh +64 -0
  164. package/overlays/mkdocs/README.md +309 -0
  165. package/overlays/mkdocs/devcontainer.patch.json +24 -0
  166. package/overlays/mkdocs/overlay.yml +15 -0
  167. package/overlays/modern-cli-tools/README.md +556 -0
  168. package/overlays/modern-cli-tools/devcontainer.patch.json +3 -0
  169. package/overlays/modern-cli-tools/overlay.yml +13 -0
  170. package/overlays/modern-cli-tools/setup.sh +153 -0
  171. package/overlays/mongodb/.env.example +9 -0
  172. package/overlays/mongodb/README.md +481 -0
  173. package/overlays/mongodb/devcontainer.patch.json +32 -0
  174. package/overlays/mongodb/docker-compose.yml +44 -0
  175. package/overlays/mongodb/overlay.yml +17 -0
  176. package/overlays/mongodb/verify.sh +48 -0
  177. package/overlays/mysql/.env.example +11 -0
  178. package/overlays/mysql/README.md +542 -0
  179. package/overlays/mysql/devcontainer.patch.json +34 -0
  180. package/overlays/mysql/docker-compose.yml +55 -0
  181. package/overlays/mysql/overlay.yml +16 -0
  182. package/overlays/mysql/verify.sh +48 -0
  183. package/overlays/nats/.env.example +5 -0
  184. package/overlays/nats/README.md +762 -0
  185. package/overlays/nats/devcontainer.patch.json +24 -0
  186. package/overlays/nats/docker-compose.yml +31 -0
  187. package/overlays/nats/overlay.yml +18 -0
  188. package/overlays/nats/verify.sh +50 -0
  189. package/overlays/ngrok/README.md +503 -0
  190. package/overlays/ngrok/devcontainer.patch.json +3 -0
  191. package/overlays/ngrok/overlay.yml +14 -0
  192. package/overlays/ngrok/setup.sh +125 -0
  193. package/overlays/nodejs/README.md +192 -0
  194. package/overlays/nodejs/devcontainer.patch.json +49 -0
  195. package/overlays/nodejs/global-packages.txt +16 -0
  196. package/overlays/nodejs/overlay.yml +14 -0
  197. package/overlays/nodejs/setup.sh +46 -0
  198. package/overlays/nodejs/verify.sh +32 -0
  199. package/overlays/otel-collector/.env.example +9 -0
  200. package/overlays/otel-collector/README.md +1257 -0
  201. package/overlays/otel-collector/devcontainer.patch.json +28 -0
  202. package/overlays/otel-collector/docker-compose.yml +22 -0
  203. package/overlays/otel-collector/otel-collector-config.yaml +68 -0
  204. package/overlays/otel-collector/overlay.yml +21 -0
  205. package/overlays/otel-collector/setup.sh +49 -0
  206. package/overlays/otel-demo-nodejs/.env.example +2 -0
  207. package/overlays/otel-demo-nodejs/Dockerfile-otel-demo-nodejs +17 -0
  208. package/overlays/otel-demo-nodejs/README.md +409 -0
  209. package/overlays/otel-demo-nodejs/devcontainer.patch.json +12 -0
  210. package/overlays/otel-demo-nodejs/docker-compose.yml +19 -0
  211. package/overlays/otel-demo-nodejs/overlay.yml +23 -0
  212. package/overlays/otel-demo-nodejs/package-otel-demo-nodejs.json +20 -0
  213. package/overlays/otel-demo-nodejs/server-otel-demo-nodejs.js +259 -0
  214. package/overlays/otel-demo-nodejs/tracing-otel-demo-nodejs.js +57 -0
  215. package/overlays/otel-demo-nodejs/verify.sh +31 -0
  216. package/overlays/otel-demo-python/.env.example +2 -0
  217. package/overlays/otel-demo-python/Dockerfile-otel-demo-python +16 -0
  218. package/overlays/otel-demo-python/README.md +82 -0
  219. package/overlays/otel-demo-python/app-otel-demo-python.py +208 -0
  220. package/overlays/otel-demo-python/devcontainer.patch.json +12 -0
  221. package/overlays/otel-demo-python/docker-compose.yml +19 -0
  222. package/overlays/otel-demo-python/overlay.yml +23 -0
  223. package/overlays/otel-demo-python/requirements-otel-demo-python.txt +4 -0
  224. package/overlays/otel-demo-python/verify.sh +31 -0
  225. package/overlays/playwright/README.md +629 -0
  226. package/overlays/playwright/devcontainer.patch.json +9 -0
  227. package/overlays/playwright/overlay.yml +13 -0
  228. package/overlays/postgres/.env.example +6 -0
  229. package/overlays/postgres/README.md +602 -0
  230. package/overlays/postgres/devcontainer.patch.json +21 -0
  231. package/overlays/postgres/docker-compose.yml +22 -0
  232. package/overlays/postgres/overlay.yml +15 -0
  233. package/overlays/postgres/verify.sh +45 -0
  234. package/overlays/powershell/README.md +314 -0
  235. package/overlays/powershell/devcontainer.patch.json +22 -0
  236. package/overlays/powershell/overlay.yml +13 -0
  237. package/overlays/powershell/setup.sh +29 -0
  238. package/overlays/powershell/verify.sh +38 -0
  239. package/overlays/pre-commit/README.md +263 -0
  240. package/overlays/pre-commit/devcontainer.patch.json +9 -0
  241. package/overlays/pre-commit/overlay.yml +16 -0
  242. package/overlays/pre-commit/setup.sh +129 -0
  243. package/overlays/presets/docs-site.yml +118 -0
  244. package/overlays/presets/fullstack.yml +181 -0
  245. package/overlays/presets/microservice.yml +118 -0
  246. package/overlays/presets/web-api.yml +109 -0
  247. package/overlays/prometheus/.env.example +5 -0
  248. package/overlays/prometheus/README.md +1246 -0
  249. package/overlays/prometheus/devcontainer.patch.json +12 -0
  250. package/overlays/prometheus/docker-compose.yml +22 -0
  251. package/overlays/prometheus/overlay.yml +17 -0
  252. package/overlays/prometheus/prometheus.yml +12 -0
  253. package/overlays/prometheus/verify.sh +34 -0
  254. package/overlays/promtail/.env.example +2 -0
  255. package/overlays/promtail/README.md +357 -0
  256. package/overlays/promtail/devcontainer.patch.json +5 -0
  257. package/overlays/promtail/docker-compose.yml +16 -0
  258. package/overlays/promtail/overlay.yml +17 -0
  259. package/overlays/promtail/promtail-config.yaml +60 -0
  260. package/overlays/promtail/verify.sh +31 -0
  261. package/overlays/pulumi/README.md +472 -0
  262. package/overlays/pulumi/devcontainer.patch.json +13 -0
  263. package/overlays/pulumi/overlay.yml +14 -0
  264. package/overlays/pulumi/verify.sh +31 -0
  265. package/overlays/python/README.md +919 -0
  266. package/overlays/python/devcontainer.patch.json +41 -0
  267. package/overlays/python/overlay.yml +12 -0
  268. package/overlays/python/requirements-overlay.txt +13 -0
  269. package/overlays/python/setup.sh +47 -0
  270. package/overlays/python/verify.sh +32 -0
  271. package/overlays/rabbitmq/.env.example +7 -0
  272. package/overlays/rabbitmq/README.md +680 -0
  273. package/overlays/rabbitmq/devcontainer.patch.json +28 -0
  274. package/overlays/rabbitmq/docker-compose.yml +30 -0
  275. package/overlays/rabbitmq/overlay.yml +18 -0
  276. package/overlays/rabbitmq/verify.sh +41 -0
  277. package/overlays/redis/.env.example +4 -0
  278. package/overlays/redis/README.md +776 -0
  279. package/overlays/redis/devcontainer.patch.json +21 -0
  280. package/overlays/redis/docker-compose.yml +21 -0
  281. package/overlays/redis/overlay.yml +15 -0
  282. package/overlays/redis/verify.sh +41 -0
  283. package/overlays/redpanda/.env.example +10 -0
  284. package/overlays/redpanda/README.md +703 -0
  285. package/overlays/redpanda/devcontainer.patch.json +37 -0
  286. package/overlays/redpanda/docker-compose.yml +67 -0
  287. package/overlays/redpanda/overlay.yml +21 -0
  288. package/overlays/redpanda/verify.sh +48 -0
  289. package/overlays/rust/README.md +299 -0
  290. package/overlays/rust/devcontainer.patch.json +39 -0
  291. package/overlays/rust/overlay.yml +15 -0
  292. package/overlays/rust/setup.sh +36 -0
  293. package/overlays/rust/verify.sh +51 -0
  294. package/overlays/sqlite/README.md +584 -0
  295. package/overlays/sqlite/devcontainer.patch.json +14 -0
  296. package/overlays/sqlite/overlay.yml +15 -0
  297. package/overlays/sqlite/setup.sh +27 -0
  298. package/overlays/sqlite/verify.sh +43 -0
  299. package/overlays/sqlserver/.env.example +6 -0
  300. package/overlays/sqlserver/README.md +592 -0
  301. package/overlays/sqlserver/devcontainer.patch.json +22 -0
  302. package/overlays/sqlserver/docker-compose.yml +32 -0
  303. package/overlays/sqlserver/overlay.yml +17 -0
  304. package/overlays/sqlserver/verify.sh +30 -0
  305. package/overlays/tempo/.env.example +5 -0
  306. package/overlays/tempo/README.md +273 -0
  307. package/overlays/tempo/devcontainer.patch.json +12 -0
  308. package/overlays/tempo/docker-compose.yml +20 -0
  309. package/overlays/tempo/overlay.yml +20 -0
  310. package/overlays/tempo/tempo-config.yaml +32 -0
  311. package/overlays/tempo/verify.sh +31 -0
  312. package/overlays/terraform/README.md +389 -0
  313. package/overlays/terraform/devcontainer.patch.json +15 -0
  314. package/overlays/terraform/overlay.yml +14 -0
  315. package/overlays/terraform/verify.sh +63 -0
  316. package/package.json +74 -0
  317. package/templates/README.md +285 -0
  318. package/templates/compose/.devcontainer/devcontainer.json +46 -0
  319. package/templates/compose/.devcontainer/docker-compose.yml +12 -0
  320. package/templates/compose/README.md +20 -0
  321. package/templates/plain/.devcontainer/devcontainer.json +35 -0
  322. package/templates/plain/README.md +21 -0
  323. package/tool/README.md +281 -0
  324. package/tool/schema/base-images.schema.json +43 -0
  325. package/tool/schema/base-templates.schema.json +34 -0
  326. package/tool/schema/config.schema.json +71 -0
  327. package/tool/schema/overlay-manifest.schema.json +86 -0
@@ -0,0 +1,263 @@
1
+ {
2
+ "annotations": {
3
+ "list": []
4
+ },
5
+ "editable": true,
6
+ "fiscalYearStartMonth": 0,
7
+ "graphTooltip": 0,
8
+ "id": null,
9
+ "links": [],
10
+ "liveNow": false,
11
+ "panels": [
12
+ {
13
+ "datasource": {
14
+ "type": "prometheus",
15
+ "uid": "prometheus"
16
+ },
17
+ "fieldConfig": {
18
+ "defaults": {
19
+ "color": {
20
+ "mode": "palette-classic"
21
+ },
22
+ "custom": {
23
+ "axisCenteredZero": false,
24
+ "axisColorMode": "text",
25
+ "axisLabel": "",
26
+ "axisPlacement": "auto",
27
+ "barAlignment": 0,
28
+ "drawStyle": "line",
29
+ "fillOpacity": 10,
30
+ "gradientMode": "none",
31
+ "hideFrom": {
32
+ "tooltip": false,
33
+ "viz": false,
34
+ "legend": false
35
+ },
36
+ "lineInterpolation": "linear",
37
+ "lineWidth": 1,
38
+ "pointSize": 5,
39
+ "scaleDistribution": {
40
+ "type": "linear"
41
+ },
42
+ "showPoints": "never",
43
+ "spanNulls": false,
44
+ "stacking": {
45
+ "group": "A",
46
+ "mode": "none"
47
+ },
48
+ "thresholdsStyle": {
49
+ "mode": "off"
50
+ }
51
+ },
52
+ "mappings": [],
53
+ "thresholds": {
54
+ "mode": "absolute",
55
+ "steps": [
56
+ {
57
+ "color": "green",
58
+ "value": null
59
+ }
60
+ ]
61
+ },
62
+ "unit": "reqps"
63
+ },
64
+ "overrides": []
65
+ },
66
+ "gridPos": {
67
+ "h": 8,
68
+ "w": 12,
69
+ "x": 0,
70
+ "y": 0
71
+ },
72
+ "id": 1,
73
+ "options": {
74
+ "legend": {
75
+ "calcs": [],
76
+ "displayMode": "list",
77
+ "placement": "bottom",
78
+ "showLegend": true
79
+ },
80
+ "tooltip": {
81
+ "mode": "multi",
82
+ "sort": "none"
83
+ }
84
+ },
85
+ "pluginVersion": "10.0.0",
86
+ "targets": [
87
+ {
88
+ "datasource": {
89
+ "type": "prometheus",
90
+ "uid": "prometheus"
91
+ },
92
+ "expr": "rate(http_requests_total[5m])",
93
+ "refId": "A",
94
+ "legendFormat": "{{service}} - {{status}}"
95
+ }
96
+ ],
97
+ "title": "HTTP Request Rate",
98
+ "type": "timeseries"
99
+ },
100
+ {
101
+ "datasource": {
102
+ "type": "prometheus",
103
+ "uid": "prometheus"
104
+ },
105
+ "fieldConfig": {
106
+ "defaults": {
107
+ "color": {
108
+ "mode": "palette-classic"
109
+ },
110
+ "custom": {
111
+ "axisCenteredZero": false,
112
+ "axisColorMode": "text",
113
+ "axisLabel": "",
114
+ "axisPlacement": "auto",
115
+ "barAlignment": 0,
116
+ "drawStyle": "line",
117
+ "fillOpacity": 10,
118
+ "gradientMode": "none",
119
+ "hideFrom": {
120
+ "tooltip": false,
121
+ "viz": false,
122
+ "legend": false
123
+ },
124
+ "lineInterpolation": "linear",
125
+ "lineWidth": 1,
126
+ "pointSize": 5,
127
+ "scaleDistribution": {
128
+ "type": "linear"
129
+ },
130
+ "showPoints": "never",
131
+ "spanNulls": false,
132
+ "stacking": {
133
+ "group": "A",
134
+ "mode": "none"
135
+ },
136
+ "thresholdsStyle": {
137
+ "mode": "off"
138
+ }
139
+ },
140
+ "mappings": [],
141
+ "thresholds": {
142
+ "mode": "absolute",
143
+ "steps": [
144
+ {
145
+ "color": "green",
146
+ "value": null
147
+ },
148
+ {
149
+ "color": "red",
150
+ "value": 1
151
+ }
152
+ ]
153
+ },
154
+ "unit": "s"
155
+ },
156
+ "overrides": []
157
+ },
158
+ "gridPos": {
159
+ "h": 8,
160
+ "w": 12,
161
+ "x": 12,
162
+ "y": 0
163
+ },
164
+ "id": 2,
165
+ "options": {
166
+ "legend": {
167
+ "calcs": ["mean", "max"],
168
+ "displayMode": "table",
169
+ "placement": "bottom",
170
+ "showLegend": true
171
+ },
172
+ "tooltip": {
173
+ "mode": "multi",
174
+ "sort": "none"
175
+ }
176
+ },
177
+ "pluginVersion": "10.0.0",
178
+ "targets": [
179
+ {
180
+ "datasource": {
181
+ "type": "prometheus",
182
+ "uid": "prometheus"
183
+ },
184
+ "expr": "histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m]))",
185
+ "refId": "A",
186
+ "legendFormat": "p99 - {{service}}"
187
+ },
188
+ {
189
+ "datasource": {
190
+ "type": "prometheus",
191
+ "uid": "prometheus"
192
+ },
193
+ "expr": "histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))",
194
+ "refId": "B",
195
+ "legendFormat": "p95 - {{service}}"
196
+ },
197
+ {
198
+ "datasource": {
199
+ "type": "prometheus",
200
+ "uid": "prometheus"
201
+ },
202
+ "expr": "histogram_quantile(0.50, rate(http_request_duration_seconds_bucket[5m]))",
203
+ "refId": "C",
204
+ "legendFormat": "p50 - {{service}}"
205
+ }
206
+ ],
207
+ "title": "HTTP Request Duration (Percentiles)",
208
+ "type": "timeseries"
209
+ },
210
+ {
211
+ "datasource": {
212
+ "type": "loki",
213
+ "uid": "loki"
214
+ },
215
+ "gridPos": {
216
+ "h": 8,
217
+ "w": 24,
218
+ "x": 0,
219
+ "y": 8
220
+ },
221
+ "id": 3,
222
+ "options": {
223
+ "dedupStrategy": "none",
224
+ "enableLogDetails": true,
225
+ "prettifyLogMessage": false,
226
+ "showCommonLabels": false,
227
+ "showLabels": false,
228
+ "showTime": true,
229
+ "sortOrder": "Descending",
230
+ "wrapLogMessage": false
231
+ },
232
+ "targets": [
233
+ {
234
+ "datasource": {
235
+ "type": "loki",
236
+ "uid": "loki"
237
+ },
238
+ "expr": "{job=\"docker\"} | json",
239
+ "refId": "A"
240
+ }
241
+ ],
242
+ "title": "Application Logs",
243
+ "type": "logs"
244
+ }
245
+ ],
246
+ "refresh": "10s",
247
+ "schemaVersion": 38,
248
+ "style": "dark",
249
+ "tags": ["observability", "overview"],
250
+ "templating": {
251
+ "list": []
252
+ },
253
+ "time": {
254
+ "from": "now-1h",
255
+ "to": "now"
256
+ },
257
+ "timepicker": {},
258
+ "timezone": "",
259
+ "title": "Observability Overview",
260
+ "uid": "observability-overview",
261
+ "version": 1,
262
+ "weekStart": ""
263
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json",
3
+ "runServices": ["grafana"],
4
+ "_serviceOrder": 3,
5
+ "forwardPorts": [3000],
6
+ "portsAttributes": {
7
+ "3000": {
8
+ "label": "Grafana",
9
+ "onAutoForward": "openBrowser"
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,27 @@
1
+ version: '3.8'
2
+ services:
3
+ grafana:
4
+ image: grafana/grafana:${GRAFANA_VERSION:-latest}
5
+ environment:
6
+ - GF_SECURITY_ADMIN_USER=${GRAFANA_ADMIN_USER:-admin}
7
+ - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD:-admin}
8
+ - GF_USERS_ALLOW_SIGN_UP=false
9
+ volumes:
10
+ - ./grafana-datasources-grafana.yml:/etc/grafana/provisioning/datasources/datasources.yml
11
+ - ./dashboard-provider-grafana.yml:/etc/grafana/provisioning/dashboards/dashboards.yml
12
+ - ./dashboards:/etc/grafana/provisioning/dashboards
13
+ - grafana_data:/var/lib/grafana
14
+ ports:
15
+ - '${GRAFANA_PORT:-3000}:3000'
16
+ depends_on:
17
+ - prometheus
18
+ - loki
19
+ - jaeger
20
+ networks:
21
+ - devnet
22
+
23
+ volumes:
24
+ grafana_data:
25
+
26
+ networks:
27
+ devnet:
@@ -0,0 +1,57 @@
1
+ apiVersion: 1
2
+
3
+ datasources:
4
+ - name: Prometheus
5
+ type: prometheus
6
+ access: proxy
7
+ url: http://prometheus:9090
8
+ isDefault: true
9
+ editable: true
10
+ uid: prometheus
11
+ jsonData:
12
+ timeInterval: '15s'
13
+
14
+ - name: Loki
15
+ type: loki
16
+ access: proxy
17
+ url: http://loki:3100
18
+ editable: true
19
+ uid: loki
20
+ jsonData:
21
+ derivedFields:
22
+ - datasourceUid: tempo
23
+ matcherRegex: "\"trace\\.id\"\\s*:\\s*\"([0-9a-fA-F]+)\""
24
+ name: TraceID
25
+ url: '$${__value.raw}'
26
+ - datasourceUid: jaeger
27
+ matcherRegex: "\"trace\\.id\"\\s*:\\s*\"([0-9a-fA-F]+)\""
28
+ name: TraceID (Jaeger)
29
+ url: '$${__value.raw}'
30
+
31
+ - name: Jaeger
32
+ type: jaeger
33
+ access: proxy
34
+ url: http://jaeger:16686
35
+ editable: true
36
+ uid: jaeger
37
+
38
+ - name: Tempo
39
+ type: tempo
40
+ access: proxy
41
+ url: http://tempo:3200
42
+ editable: true
43
+ uid: tempo
44
+ jsonData:
45
+ tracesToLogs:
46
+ datasourceUid: loki
47
+ tags: ['service']
48
+ mappedTags: [{ key: 'service.name', value: 'service' }]
49
+ filterByTraceID: true
50
+ filterBySpanID: false
51
+ tracesToMetrics:
52
+ datasourceUid: prometheus
53
+ tags: [{ key: 'service.name', value: 'service' }]
54
+ serviceMap:
55
+ datasourceUid: prometheus
56
+ nodeGraph:
57
+ enabled: true
@@ -0,0 +1,21 @@
1
+ id: grafana
2
+ name: Grafana
3
+ description: Observability visualization dashboard with auto-provisioning
4
+ category: observability
5
+ supports:
6
+ - compose
7
+ requires:
8
+ - prometheus
9
+ suggests:
10
+ - loki
11
+ - jaeger
12
+ - tempo
13
+ - promtail
14
+ conflicts: []
15
+ tags:
16
+ - observability
17
+ - ui
18
+ - visualization
19
+ ports:
20
+ - 3000
21
+ order: 3
@@ -0,0 +1,34 @@
1
+ #!/bin/bash
2
+ # Verification script for Grafana overlay
3
+ # Confirms Grafana service is accessible
4
+
5
+ set -e
6
+
7
+ echo "🔍 Verifying Grafana overlay..."
8
+ echo ""
9
+
10
+ # Check if Grafana service is running
11
+ echo "1️⃣ Checking Grafana service..."
12
+ # Wait up to 15 seconds for grafana to be ready
13
+ GRAFANA_READY=false
14
+ for i in {1..15}; do
15
+ if curl -sf http://grafana:3000/api/health &> /dev/null; then
16
+ echo " ✅ Grafana service is ready"
17
+ curl -s http://grafana:3000/api/health | head -n 1
18
+ GRAFANA_READY=true
19
+ break
20
+ fi
21
+ sleep 1
22
+ done
23
+
24
+ if [ "$GRAFANA_READY" = false ]; then
25
+ echo " ❌ Grafana service not ready after 15 seconds"
26
+ exit 1
27
+ fi
28
+
29
+ echo ""
30
+ echo "2️⃣ Checking Grafana version..."
31
+ echo " Grafana is accessible at http://grafana:3000"
32
+
33
+ echo ""
34
+ echo "✅ Grafana overlay verification complete"
@@ -0,0 +1,7 @@
1
+ # Jaeger version
2
+ JAEGER_VERSION=latest
3
+
4
+ # Jaeger ports
5
+ JAEGER_UI_PORT=16686
6
+ JAEGER_OTLP_GRPC_PORT=4317
7
+ JAEGER_OTLP_HTTP_PORT=4318