id: be78ee62-013e-4c27-bf2b-29af32d2fa0c

BigQuery SQL with retention as ( select ( CASE WHEN @project_tier = 'FREE' THEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 day) WHEN @project_tier = 'PRO' THEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 day) WHEN (@project_tier = 'PAYG' OR @project_tier = 'ENTERPRISE') THEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 90 day) ELSE TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 day) END ) as date ), edge_logs as ( select t.timestamp, t.id, t.event_message, t.metadata from retention, `cloudflare.logs.prod` as t cross join unnest(metadata) as m where -- order of the where clauses matters -- project then timestamp then everything else t.project = @project AND CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) > cast(@iso_timestamp_start as timestamp) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) <= cast(@iso_timestamp_end as timestamp) END AND cast(t.timestamp as timestamp) > retention.date order by cast(t.timestamp as timestamp) desc ), postgres_logs as ( select t.timestamp, t.id, t.event_message, t.metadata from retention, `postgres.logs` as t where -- order of the where clauses matters -- project then timestamp then everything else t.project = @project AND CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) > cast(@iso_timestamp_start as timestamp) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) <= cast(@iso_timestamp_end as timestamp) END AND cast(t.timestamp as timestamp) > retention.date order by cast(t.timestamp as timestamp) desc ), function_edge_logs as ( select t.timestamp, t.id, t.event_message, t.metadata from retention, `deno-relay-logs` as t cross join unnest(t.metadata) as m where CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) > cast(@iso_timestamp_start as timestamp) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) <= cast(@iso_timestamp_end as timestamp) END and m.project_ref = @project AND cast(t.timestamp as timestamp) > retention.date order by cast(t.timestamp as timestamp) desc ), function_logs as ( select t.timestamp, t.id, t.event_message, t.metadata from retention, `deno-subhosting-events` as t cross join unnest(t.metadata) as m where -- order of the where clauses matters -- project then timestamp then everything else m.project_ref = @project AND CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) > cast(@iso_timestamp_start as timestamp) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) <= cast(@iso_timestamp_end as timestamp) END AND cast(t.timestamp as timestamp) > retention.date order by cast(t.timestamp as timestamp) desc ), auth_logs as ( select t.timestamp, t.id, t.event_message, t.metadata from retention, `gotrue.logs.prod` as t cross join unnest(t.metadata) as m where -- order of the where clauses matters -- project then timestamp then everything else -- m.project = @project t.project = @project AND CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) > cast(@iso_timestamp_start as timestamp) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) <= cast(@iso_timestamp_end as timestamp) END AND cast(t.timestamp as timestamp) > retention.date order by cast(t.timestamp as timestamp) desc ), realtime_logs as ( select t.timestamp, t.id, t.event_message, t.metadata from retention, `realtime.logs.prod` as t cross join unnest(t.metadata) as m where m.project = @project AND CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) > cast(@iso_timestamp_start as timestamp) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) <= cast(@iso_timestamp_end as timestamp) END AND cast(t.timestamp as timestamp) > retention.date order by cast(t.timestamp as timestamp) desc ), storage_logs as ( select t.timestamp, t.id, t.event_message, t.metadata from retention, `storage.logs.prod.2` as t cross join unnest(t.metadata) as m where m.project = @project AND CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) > cast(@iso_timestamp_start as timestamp) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) <= cast(@iso_timestamp_end as timestamp) END AND cast(t.timestamp as timestamp) > retention.date order by cast(t.timestamp as timestamp) desc ), postgrest_logs as ( select t.timestamp, t.id, t.event_message, t.metadata from retention, `postgREST.logs.prod` as t cross join unnest(t.metadata) as m where CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) > cast(@iso_timestamp_start as timestamp) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) <= cast(@iso_timestamp_end as timestamp) END AND t.project = @project AND cast(t.timestamp as timestamp) > retention.date order by cast(t.timestamp as timestamp) desc ), pgbouncer_logs as ( select t.timestamp, t.id, t.event_message, t.metadata from retention, `pgbouncer.logs.prod` as t cross join unnest(t.metadata) as m where CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) > cast(@iso_timestamp_start as timestamp) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN TRUE ELSE cast(t.timestamp as timestamp) <= cast(@iso_timestamp_end as timestamp) END AND t.project = @project AND cast(t.timestamp as timestamp) > retention.date order by cast(t.timestamp as timestamp) desc ) SELECT id, timestamp, event_message, metadata FROM edge_logs LIMIT 100
  • max rows: 1000
  • caching: disabled
  • query sandboxing: disabled

WITH retention AS (SELECT (CASE WHEN @project_tier = 'FREE' THEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) WHEN @project_tier = 'PRO' THEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY) WHEN (@project_tier = 'PAYG' OR @project_tier = 'ENTERPRISE') THEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 90 DAY) ELSE TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) END) AS date), edge_logs AS (SELECT t.timestamp, t.id, t.event_message, t.metadata FROM retention, `cloudflare.logs.prod` AS t CROSS JOIN UNNEST(metadata) AS m WHERE t.project = @project AND CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) > CAST(@iso_timestamp_start AS TIMESTAMP) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) <= CAST(@iso_timestamp_end AS TIMESTAMP) END AND CAST(t.timestamp AS TIMESTAMP) > retention.date ORDER BY CAST(t.timestamp AS TIMESTAMP) DESC), postgres_logs AS (SELECT t.timestamp, t.id, t.event_message, t.metadata FROM retention, `postgres.logs` AS t WHERE t.project = @project AND CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) > CAST(@iso_timestamp_start AS TIMESTAMP) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) <= CAST(@iso_timestamp_end AS TIMESTAMP) END AND CAST(t.timestamp AS TIMESTAMP) > retention.date ORDER BY CAST(t.timestamp AS TIMESTAMP) DESC), function_edge_logs AS (SELECT t.timestamp, t.id, t.event_message, t.metadata FROM retention, `deno-relay-logs` AS t CROSS JOIN UNNEST(t.metadata) AS m WHERE CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) > CAST(@iso_timestamp_start AS TIMESTAMP) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) <= CAST(@iso_timestamp_end AS TIMESTAMP) END AND m.project_ref = @project AND CAST(t.timestamp AS TIMESTAMP) > retention.date ORDER BY CAST(t.timestamp AS TIMESTAMP) DESC), function_logs AS (SELECT t.timestamp, t.id, t.event_message, t.metadata FROM retention, `deno-subhosting-events` AS t CROSS JOIN UNNEST(t.metadata) AS m WHERE m.project_ref = @project AND CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) > CAST(@iso_timestamp_start AS TIMESTAMP) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) <= CAST(@iso_timestamp_end AS TIMESTAMP) END AND CAST(t.timestamp AS TIMESTAMP) > retention.date ORDER BY CAST(t.timestamp AS TIMESTAMP) DESC), auth_logs AS (SELECT t.timestamp, t.id, t.event_message, t.metadata FROM retention, `gotrue.logs.prod` AS t CROSS JOIN UNNEST(t.metadata) AS m WHERE t.project = @project AND CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) > CAST(@iso_timestamp_start AS TIMESTAMP) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) <= CAST(@iso_timestamp_end AS TIMESTAMP) END AND CAST(t.timestamp AS TIMESTAMP) > retention.date ORDER BY CAST(t.timestamp AS TIMESTAMP) DESC), realtime_logs AS (SELECT t.timestamp, t.id, t.event_message, t.metadata FROM retention, `realtime.logs.prod` AS t CROSS JOIN UNNEST(t.metadata) AS m WHERE m.project = @project AND CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) > CAST(@iso_timestamp_start AS TIMESTAMP) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) <= CAST(@iso_timestamp_end AS TIMESTAMP) END AND CAST(t.timestamp AS TIMESTAMP) > retention.date ORDER BY CAST(t.timestamp AS TIMESTAMP) DESC), storage_logs AS (SELECT t.timestamp, t.id, t.event_message, t.metadata FROM retention, `storage.logs.prod.2` AS t CROSS JOIN UNNEST(t.metadata) AS m WHERE m.project = @project AND CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) > CAST(@iso_timestamp_start AS TIMESTAMP) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) <= CAST(@iso_timestamp_end AS TIMESTAMP) END AND CAST(t.timestamp AS TIMESTAMP) > retention.date ORDER BY CAST(t.timestamp AS TIMESTAMP) DESC), postgrest_logs AS (SELECT t.timestamp, t.id, t.event_message, t.metadata FROM retention, `postgREST.logs.prod` AS t CROSS JOIN UNNEST(t.metadata) AS m WHERE CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) > CAST(@iso_timestamp_start AS TIMESTAMP) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) <= CAST(@iso_timestamp_end AS TIMESTAMP) END AND t.project = @project AND CAST(t.timestamp AS TIMESTAMP) > retention.date ORDER BY CAST(t.timestamp AS TIMESTAMP) DESC), pgbouncer_logs AS (SELECT t.timestamp, t.id, t.event_message, t.metadata FROM retention, `pgbouncer.logs.prod` AS t CROSS JOIN UNNEST(t.metadata) AS m WHERE CASE WHEN COALESCE(@iso_timestamp_start, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) > CAST(@iso_timestamp_start AS TIMESTAMP) END AND CASE WHEN COALESCE(@iso_timestamp_end, '') = '' THEN true ELSE CAST(t.timestamp AS TIMESTAMP) <= CAST(@iso_timestamp_end AS TIMESTAMP) END AND t.project = @project AND CAST(t.timestamp AS TIMESTAMP) > retention.date ORDER BY CAST(t.timestamp AS TIMESTAMP) DESC) SELECT id, timestamp, event_message, metadata FROM edge_logs LIMIT 100

Call your endpoint

# By UUID curl "https://api.logflare.app/api/endpoints/query/be78ee62-013e-4c27-bf2b-29af32d2fa0c" \ -H 'X-API-KEY: YOUR-ACCESS-TOKEN' \ -H 'Content-Type: application/json; charset=utf-8' \ -G -d "iso_timestamp_end=VALUE" -d "iso_timestamp_start=VALUE" -d "project=VALUE" -d "project_tier=VALUE" # By name curl "https://api.logflare.app/api/endpoints/query/logs.all" \ -H 'X-API-KEY: YOUR-ACCESS-TOKEN' \ -H 'Content-Type: application/json; charset=utf-8' \ -G -d "iso_timestamp_end=VALUE" -d "iso_timestamp_start=VALUE" -d "project=VALUE" -d "project_tier=VALUE"