Logsky
Self-hosted product analytics

Know what happens inside your app.

Who is online right now, how long people stay, which screens they use, which version crashes. Logsky keeps the whole picture on your own servers, in every region you run, with nothing sent to a third party.

Online now1,747
Active devices58.7k+0.6%
Avg session7m 12s+3%
Crash-free98.4%−0.2%
live · EU + Iran merged · last 14 days

More useful than a pageview counter. Simpler than a data warehouse.

Eight views answer the questions a product team actually asks. No query language, no event taxonomy to invent first.

Realtime

Devices in the app over the last five minutes, per minute for the last thirty, with the screens and versions they are on.

Time in app

Sessions, average length, sessions per device, hours spent, day by day and against the previous period.

Retention

Of the people who installed on a given day, how many came back after 1, 3, 7, 14 and 30 days.

Screens and events

Reach per screen, every event name with its volume and spread, and a daily series for any one of them.

Crashes

Grouped by stack fingerprint with devices affected, versions, the latest trace, and crash-free rate per release.

One person

Look up a user or device, see their sessions, open one and read what they did, in order, before the crash or the support ticket.

Batched events in, answers out.

An SDK in the app queues events and ships them gzipped in batches. A small core per region validates them, strips anything that looks personal, and writes them to ClickHouse. Rollups update on every insert, so the dashboards stay fast at hundreds of millions of rows.

  • Android, web, TV, desktop and more. One wire format; the Android SDK is a drop-in package, the web SDK is a script tag, and the integration guide lets a developer or an AI assistant build any other client.
  • Private by design. Emails, phone numbers and tokens never reach the database; URLs are stripped to their path.
  • Scoped tokens. Each token writes to one project and one environment, and nothing else.
  • Hot and cold storage. Recent days on fast disk, history on big disk, raw events kept for 90 days, rollups for two years.
POST https://eu.logsky.org/v2/ingest
X-Ingest-Token: lsk_…
Content-Encoding: gzip

{
  "context": { "project": "flixdrama", "app_flavor": "production",
               "app_version": "7.5.3", "platform": "android",
               "device_id": "…", "session_id": "…" },
  "events": [
    { "name": "player_started", "category": "player",
      "screen": "player", "timestamp": 1791372691817 },
    { "name": "uncaught_exception", "category": "crash",
      "error_class": "NullPointerException", "stack_trace": "…" }
  ]
}

One dashboard, every region.

Run a core where your users are. Each region keeps its own data; the app reads them side by side or merged, through one sign-in.

eu.logsky.orgCore + ClickHouse + control plane (projects, tokens, people). Serves the app.
ir.logsky.orgCore + ClickHouse. Pulls its token list from EU, answers queries for the Iran region only.