Openstatus www.openstatus.dev

🔥 tcp timestamp (#1043)

* 🔥 tcp timestamp

* 🔥 tcp timestamp

authored by

Thibault Le Ouay and committed by
GitHub
4452dbc2 4ca5896c

+46 -35
+43 -35
apps/checker/handlers/tcp.go
··· 28 28 Timing string `json:"timing"` 29 29 ErrorMessage string `json:"errorMessage"` 30 30 Region string `json:"region"` 31 + Trigger string `json:"trigger"` 31 32 32 - RequestId int64 `json:"requestId,omitempty"` 33 - WorkspaceID int64 `json:"workspaceId"` 34 - MonitorID int64 `json:"monitorId"` 35 - Timestamp int64 `json:"timestamp"` 36 - Latency int64 `json:"latency"` 33 + RequestId int64 `json:"requestId,omitempty"` 34 + WorkspaceID int64 `json:"workspaceId"` 35 + MonitorID int64 `json:"monitorId"` 36 + Timestamp int64 `json:"timestamp"` 37 + Latency int64 `json:"latency"` 38 + CronTimestamp int64 `json:"cronTimestamp"` 37 39 38 40 Error uint8 `json:"error"` 39 41 } ··· 101 103 latency := res.TCPDone - res.TCPStart 102 104 103 105 data := TCPData{ 104 - WorkspaceID: workspaceId, 105 - Timestamp: req.CronTimestamp, 106 - Error: 0, 107 - ErrorMessage: "", 108 - Region: h.Region, 109 - MonitorID: monitorId, 110 - Timing: string(timingAsString), 111 - Latency: latency, 106 + WorkspaceID: workspaceId, 107 + Timestamp: res.TCPStart, 108 + Error: 0, 109 + ErrorMessage: "", 110 + Region: h.Region, 111 + MonitorID: monitorId, 112 + Timing: string(timingAsString), 113 + Latency: latency, 114 + CronTimestamp: req.CronTimestamp, 115 + Trigger: "cron", 112 116 } 113 117 114 118 if req.Status == "active" && req.DegradedAfter > 0 && latency > req.DegradedAfter { ··· 159 163 160 164 if err := backoff.Retry(op, backoff.WithMaxRetries(backoff.NewExponentialBackOff(), 3)); err != nil { 161 165 if err := h.TbClient.SendEvent(ctx, TCPData{ 162 - WorkspaceID: workspaceId, 163 - Timestamp: req.CronTimestamp, 164 - ErrorMessage: err.Error(), 165 - Region: h.Region, 166 - MonitorID: monitorId, 167 - Error: 1, 166 + WorkspaceID: workspaceId, 167 + CronTimestamp: req.CronTimestamp, 168 + ErrorMessage: err.Error(), 169 + Region: h.Region, 170 + MonitorID: monitorId, 171 + Error: 1, 172 + Trigger: "cron", 168 173 }, dataSourceName); err != nil { 169 174 log.Ctx(ctx).Error().Err(err).Msg("failed to send event to tinybird") 170 175 } ··· 265 270 latency := res.TCPDone - res.TCPStart 266 271 267 272 data := TCPData{ 268 - WorkspaceID: workspaceId, 269 - Timestamp: req.CronTimestamp, 270 - Error: 0, 271 - ErrorMessage: "", 272 - Region: h.Region, 273 - MonitorID: monitorId, 274 - Timing: string(timingAsString), 275 - Latency: latency, 276 - RequestId: req.RequestId, 273 + WorkspaceID: workspaceId, 274 + CronTimestamp: req.CronTimestamp, 275 + Timestamp: res.TCPStart, 276 + Error: 0, 277 + ErrorMessage: "", 278 + Region: h.Region, 279 + MonitorID: monitorId, 280 + Timing: string(timingAsString), 281 + Latency: latency, 282 + RequestId: req.RequestId, 283 + Trigger: "API", 277 284 } 278 285 279 286 if req.RequestId != 0 { ··· 287 294 288 295 if err := backoff.Retry(op, backoff.WithMaxRetries(backoff.NewExponentialBackOff(), 3)); err != nil && req.RequestId != 0 { 289 296 if err := h.TbClient.SendEvent(ctx, TCPData{ 290 - WorkspaceID: workspaceId, 291 - Timestamp: req.CronTimestamp, 292 - ErrorMessage: err.Error(), 293 - Region: h.Region, 294 - MonitorID: monitorId, 295 - Error: 1, 296 - RequestId: req.RequestId, 297 + WorkspaceID: workspaceId, 298 + CronTimestamp: req.CronTimestamp, 299 + ErrorMessage: err.Error(), 300 + Region: h.Region, 301 + MonitorID: monitorId, 302 + Error: 1, 303 + RequestId: req.RequestId, 304 + Trigger: "api", 297 305 }, dataSourceName); err != nil { 298 306 log.Ctx(ctx).Error().Err(err).Msg("failed to send event to tinybird") 299 307 }
+3
packages/tinybird/datasources/tcp_response.datasource
··· 4 4 `monitorId` Int32 `json:$.monitorId`, 5 5 `region` String `json:$.region`, 6 6 `timestamp` Int64 `json:$.timestamp`, 7 + `cronTimestamp` Int64 `json:$.timestamp`, 7 8 `timing` String `json:$.timing`, 8 9 `workspaceId` Int32 `json:$.workspaceId`, 9 10 `latency` Int64 `json:$.latency`, 10 11 `errorMessage` Nullable(String) `json:$.errorMessage`, 11 12 `error` Int16 `json:$.error` 13 + `trigger` Nullable(String) `json:$.trigger`, 14 + 12 15 13 16 ENGINE "MergeTree" 14 17 ENGINE_PARTITION_KEY "toYYYYMM(fromUnixTimestamp64Milli(timestamp))"