mirror of
https://github.com/khoj-ai/khoj.git
synced 2024-11-23 15:38:55 +01:00
Push telemetry to Posthog to grok Khoj usage
This commit is contained in:
parent
d13db2e666
commit
8617cf1389
4 changed files with 17 additions and 4 deletions
|
@ -43,3 +43,5 @@ jobs:
|
|||
file: src/telemetry/Dockerfile
|
||||
push: true
|
||||
tags: ghcr.io/${{ github.repository }}-telemetry:${{ env.DOCKER_IMAGE_TAG }}
|
||||
secrets: |
|
||||
"POSTHOG_API_KEY=${{ secrets.POSTHOG_API_KEY }}"
|
||||
|
|
|
@ -6,5 +6,10 @@ LABEL org.opencontainers.image.source https://github.com/debanjum/khoj
|
|||
COPY requirements.txt /tmp/requirements.txt
|
||||
RUN pip install --no-cache-dir -r /tmp/requirements.txt
|
||||
|
||||
# Set Environment Variables
|
||||
RUN --mount=type=secret,id=POSTHOG_API_KEY \
|
||||
export POSTHOG_API_KEY=$(cat /run/secrets/POSTHOG_API_KEY) && \
|
||||
echo "POSTHOG_API_KEY=$POSTHOG_API_KEY" > /app/.env
|
||||
|
||||
# Copy Application
|
||||
COPY telemetry.py /app/main.py
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
uvicorn
|
||||
fastapi
|
||||
requests
|
||||
posthog
|
||||
python-dotenv
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
# Standard Packages
|
||||
import argparse
|
||||
import logging
|
||||
import os
|
||||
from typing import Dict, List
|
||||
|
||||
# External Packages
|
||||
from fastapi import FastAPI
|
||||
from fastapi import HTTPException
|
||||
from posthog import Posthog
|
||||
from dotenv import load_dotenv
|
||||
import sqlite3
|
||||
import requests
|
||||
import uvicorn
|
||||
|
||||
|
||||
|
@ -16,6 +18,8 @@ app = FastAPI()
|
|||
sqlfile = "data/khoj.sqlite"
|
||||
logger = logging.getLogger()
|
||||
logger.setLevel(logging.DEBUG)
|
||||
load_dotenv()
|
||||
posthog = Posthog(project_api_key=os.getenv("POSTHOG_API_KEY"), host="https://app.posthog.com")
|
||||
|
||||
|
||||
@app.post("/v1/telemetry")
|
||||
|
@ -26,9 +30,10 @@ def v1_telemetry(telemetry_data: List[Dict[str, str]]):
|
|||
logger.error(error_message)
|
||||
raise HTTPException(status_code=500, detail=error_message)
|
||||
|
||||
# POST request to new khoj telemetry server
|
||||
# POST request to khoj posthog server
|
||||
try:
|
||||
requests.post("https://telemetry.khoj.dev/v1/telemetry", json=telemetry_data)
|
||||
for row in telemetry_data:
|
||||
posthog.capture(row["server_id"], "api_request", row)
|
||||
except Exception as e:
|
||||
raise HTTPException(
|
||||
status_code=500,
|
||||
|
|
Loading…
Reference in a new issue