Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/openstatus. ๐ซ Status page with uptime monitoring & API monitoring as code ๐ซ openstatus.dev
bun drizzle-orm monitoring monitoring-as-code nextjs observability on-call open-source shadcn-ui status-page statuspage synthetic-monitoring tinybird turso uptime uptime-checker uptime-monitor
Something went wrong. Try again.
1.6 kB ยท 64 lines
Go
at incident-api
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465package server
import ( "context" "log/slog" "strconv" "time"
"github.com/openstatushq/openstatus/apps/private-location/internal/workflows")
type statusUpdateInput struct { RequestStatus string Message string Latency int64 CronTimestamp int64 StatusCode int ErrorFlag uint8}
func classifyStatus(requestStatus string, errorFlag uint8) string { switch requestStatus { case "success", "active": return "active" case "degraded": return "degraded" case "error": return "error" default: if errorFlag == 1 { return "error" } return "active" }}
func (h *privateLocationHandler) forwardStatusUpdate(ctx context.Context, ic *ingestContext, input statusUpdateInput) { if h.WorkflowsClient == nil { return }
payload := workflows.Payload{ MonitorID: strconv.Itoa(ic.Monitor.ID), PrivateLocationID: strconv.Itoa(ic.Region.ID), Status: classifyStatus(input.RequestStatus, input.ErrorFlag), Message: input.Message, CronTimestamp: input.CronTimestamp, Latency: input.Latency, StatusCode: input.StatusCode, }
// Detached from the ingest RPC: a lost report self-heals on the next check. go func() { detachedCtx, cancel := context.WithTimeout(context.WithoutCancel(ctx), 5*time.Second) defer cancel() if err := h.WorkflowsClient.Report(detachedCtx, payload); err != nil { slog.Error("failed to forward status update to workflows", "monitor_id", payload.MonitorID, "private_location_id", payload.PrivateLocationID, "error", err.Error(), ) } }()}