feat: add dedicated message-exchange for task lifecycle notifications
- add constants/message.go with MessageTask* categories and message-exchange /
message-queue / dead-letter routing constants
- add mq/publish_message.go with PushMessageToRabbitMQ (confirm mode,
dead-letter queue) separate from the existing event-exchange publisher
- add mq/emit.go with TryEmitMessage for non-blocking, OTel-traced dispatch
- add mq/event/task_event_gen.go with NewTaskSubmitted/Running/Completed/
Failed/CancelledMessage constructors
- wire TryEmitMessage into task worker and create/cancel handlers so all 5
lifecycle transitions are published (previously task.* routed to
event-exchange with no matching binding, causing silent drops)
- harden Dockerfile: scratch final image, pinned alpine:3.21 certs stage,
apk upgrade in builder, add -trimpath -mod=readonly go build flags
- add full K8s manifests under deploy/k8s/ for Redis, RabbitMQ (mTLS),
ModelRT (Downward API, scratch image, readOnlyRootFilesystem), Jaeger,
Loki, Promtail, Grafana
- expand deploy.md with async_task SQL schema, TLS cert generation steps,
K8s deployment procedures, and SSH tunnel configuration
2026-05-13 16:58:36 +08:00
|
|
|
apiVersion: v1
|
|
|
|
|
kind: ConfigMap
|
|
|
|
|
metadata:
|
|
|
|
|
name: grafana-datasources
|
|
|
|
|
namespace: default
|
|
|
|
|
data:
|
|
|
|
|
datasources.yaml: |
|
|
|
|
|
apiVersion: 1
|
|
|
|
|
datasources:
|
|
|
|
|
- name: Loki
|
|
|
|
|
type: loki
|
|
|
|
|
access: proxy
|
2026-06-03 17:11:54 +08:00
|
|
|
url: http://loki-service:3100
|
feat: add dedicated message-exchange for task lifecycle notifications
- add constants/message.go with MessageTask* categories and message-exchange /
message-queue / dead-letter routing constants
- add mq/publish_message.go with PushMessageToRabbitMQ (confirm mode,
dead-letter queue) separate from the existing event-exchange publisher
- add mq/emit.go with TryEmitMessage for non-blocking, OTel-traced dispatch
- add mq/event/task_event_gen.go with NewTaskSubmitted/Running/Completed/
Failed/CancelledMessage constructors
- wire TryEmitMessage into task worker and create/cancel handlers so all 5
lifecycle transitions are published (previously task.* routed to
event-exchange with no matching binding, causing silent drops)
- harden Dockerfile: scratch final image, pinned alpine:3.21 certs stage,
apk upgrade in builder, add -trimpath -mod=readonly go build flags
- add full K8s manifests under deploy/k8s/ for Redis, RabbitMQ (mTLS),
ModelRT (Downward API, scratch image, readOnlyRootFilesystem), Jaeger,
Loki, Promtail, Grafana
- expand deploy.md with async_task SQL schema, TLS cert generation steps,
K8s deployment procedures, and SSH tunnel configuration
2026-05-13 16:58:36 +08:00
|
|
|
isDefault: true
|
|
|
|
|
jsonData:
|
|
|
|
|
# derivedFields: 从日志的 traceID 字段生成跳转链接到 Jaeger
|
|
|
|
|
derivedFields:
|
|
|
|
|
- matcherRegex: '"traceID":\s*"([a-f0-9]+)"'
|
|
|
|
|
name: TraceID
|
|
|
|
|
url: http://127.0.0.1:16686/trace/$${__value.raw}
|
|
|
|
|
targetBlank: true
|
|
|
|
|
- name: Jaeger
|
|
|
|
|
type: jaeger
|
|
|
|
|
uid: jaeger
|
|
|
|
|
access: proxy
|
2026-06-03 17:11:54 +08:00
|
|
|
url: http://jaeger-service:16686
|