~/ endpoints /logs.all
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"