2024-04-30 10:21:41 -07:00
import { ExtractorOptions } from './../../lib/entities' ;
2024-04-20 13:53:11 -07:00
import { supabase_service } from "../supabase" ;
import { FirecrawlJob } from "../../types" ;
2024-05-02 15:30:22 -04:00
import { posthog } from "../posthog" ;
2024-04-20 13:53:11 -07:00
import "dotenv/config" ;
export async function logJob ( job : FirecrawlJob ) {
try {
// Only log jobs in production
2024-06-26 18:23:28 -03:00
// if (process.env.ENV !== "production") {
// return;
// }
2024-04-20 13:53:11 -07:00
const { data , error } = await supabase_service
. from ( "firecrawl_jobs" )
. insert ( [
{
2024-06-26 18:23:28 -03:00
job_id : job.job_id ? job.job_id : null ,
2024-04-20 13:53:11 -07:00
success : job.success ,
message : job.message ,
num_docs : job.num_docs ,
docs : job.docs ,
time_taken : job.time_taken ,
2024-04-20 19:37:45 -07:00
team_id : job.team_id === "preview" ? null : job . team_id ,
2024-04-20 13:53:11 -07:00
mode : job.mode ,
url : job.url ,
crawler_options : job.crawlerOptions ,
page_options : job.pageOptions ,
2024-04-20 19:37:45 -07:00
origin : job.origin ,
2024-04-30 09:20:15 -07:00
extractor_options : job.extractor_options ,
num_tokens : job.num_tokens
2024-04-20 13:53:11 -07:00
} ,
] ) ;
2024-05-02 15:30:22 -04:00
if ( process . env . POSTHOG_API_KEY ) {
2024-06-18 17:42:21 -07:00
let phLog = {
distinctId : "from-api" , //* To identify this on the group level, setting distinctid to a static string per posthog docs: https://posthog.com/docs/product-analytics/group-analytics#advanced-server-side-only-capturing-group-events-without-a-user
. . . ( job . team_id !== "preview" && {
groups : { team : job.team_id }
} ) , //* Identifying event on this team
2024-05-02 15:30:22 -04:00
event : "job-logged" ,
properties : {
success : job.success ,
message : job.message ,
num_docs : job.num_docs ,
time_taken : job.time_taken ,
team_id : job.team_id === "preview" ? null : job . team_id ,
mode : job.mode ,
url : job.url ,
crawler_options : job.crawlerOptions ,
page_options : job.pageOptions ,
origin : job.origin ,
extractor_options : job.extractor_options ,
num_tokens : job.num_tokens
} ,
2024-06-18 17:42:21 -07:00
}
posthog . capture ( phLog ) ;
2024-05-02 15:30:22 -04:00
}
2024-04-20 13:53:11 -07:00
if ( error ) {
console . error ( "Error logging job:\n" , error ) ;
}
} catch ( error ) {
console . error ( "Error logging job:\n" , error ) ;
}
}