Chronicle
مركز واحد لسجلات كل التطبيقات: استقبال بمفتاح لكل تطبيق، وبحث نصي كامل، وبث مباشر، وتتبّع بمعرّف الارتباط، وتنبيهات بريدية حسب العتبة، وتحليلات.
One centre for the logs of every application
Chronicle is a log and event centre that gathers the logs of every application a team runs into one place. Each application sends its records with its own key; the team searches from a single panel, watches incoming records live, follows a request's trail across applications, gets an email when a threshold is crossed and sees the overall picture in charts.
The product came out of our own need. In a team running dozens of applications at once, log files scatter across servers; finding where an error began means opening five files on five machines, and when a customer reports a problem the team cannot answer 'what happened on our side'. Chronicle was written to keep those records in one place, searchable and able to raise alerts; today the unexpected errors of the applications in the family land here.
A record is structured: level, message, exception text, source, environment, machine name, correlation id, time and free extra fields. Sending never makes the application wait; records are queued in the background and delivered in batches. Sending logs needs no account, the application's key is enough; entering the panel uses a Vosetu Passport account.
- One key per application; no account needed
- Full-text search, live stream, trail by correlation id
- Threshold-based alert rules and email
- Retention per application; expired records are permanently deleted
The screens of the panel
The same record gets asked different questions: what is happening right now, where did this error begin, how many errors landed last night, which application went quiet. Each screen answers one of those questions; all of them run on the same data.
Applications
Registered applications, their keys, retention periods and status; key renewal and switching active / inactive.
Logs
Full-text search over message and source; level, application, environment and date filters; the exception and every extra field on the row.
Correlation trail
A time-ordered trail across applications from a single id; opened in one click from any row.
Live stream
New records on screen the moment they arrive; pause, resume, clear; auto-scroll.
Alerts
Rules with level, time window and threshold; email on trigger; every trigger in a permanent history.
Analytics
Total volume, the last day and its errors, distribution by level and application, hourly and daily series.
Home dashboard
Application count, today's volume, latest errors, latest triggered alerts and applications quiet for a day.
Organisation
Brands, branches and staff; the branch selector narrows applications, logs and analytics to the same branch.
The heart of the flow
The journey of a record
The application registers with Chronicle and receives a key. Records are sent with that key; in .NET applications the ready client library hooks into the existing logging infrastructure, queues records in the background and sends them in batches, never making the application wait. An application written in another language calls the same endpoint directly. An incoming record finds its place by organisation, application and level; an unknown level is lowered to information, and the server time is written if none is given.
- Structured fields; only the message is required
- Background queue, batched sending, retries
- A per-minute rate limit per application; on overrun records wait rather than drop
- An application can read its own records back with its own key
Search and trail
Search in the panel runs over message and source; it is narrowed by level, application, environment and date range, results are paged and always confined to your own organisation. For cases where a request passes through several applications there is the correlation id: the records of applications logging with the same id are lined up in time order and the trail opens in one click from any row. The live stream shows new records the moment they arrive; you can pause to read, or clear and watch from the start.
- Full-text search and multi-level filter
- A time-ordered cross-application trail by correlation id
- Live stream: pause, resume, clear
- Intersecting filter with the branch selector
Alert rules
A rule says: in this application or across the whole organisation, at this level and above, if this many records land within this time window, tell me. An optional search text counts only matching records. Rules are evaluated regularly; on trigger an email goes out with the rule name, the matched count and a sample message, and the trigger is written to a permanent history. A cooldown delays the same rule from firing again and again. One rule's failure never blocks the others.
- Level and above, time window, threshold, cooldown
- A single application or the whole organisation
- Comma-separated notification addresses
- Trigger history: date, count, sample, notified addresses
Retention and key hygiene
Every application has its own retention period; expired records are deleted regularly and permanently, and the disk is genuinely reclaimed. The key is always visible and copyable in the panel; if you suspect it has leaked you renew only the key without deleting the application, the new one invalidates the old one instantly and the past logs stay. An application switched to inactive accepts no new records but its history remains searchable.
- Retention in days; unlimited if left empty
- Key renewal: the old one invalid instantly
- Active / inactive: stop intake, keep history
- An application without a branch shows in every branch view
The capability catalogue
- A single ingest endpoint, one key per application
- Batched records per request
- Levels: Verbose, Debug, Information, Warning, Error, Fatal
- Message, exception, source, environment, machine, correlation id, time, extra fields
- Per-minute rate limit per application
- An application querying its own records
- Official .NET 9 client library
- Hooks into the standard .NET logging infrastructure
- Background queue and batched sending
- Limited retries; the application never waits
- Flush pending records on shutdown
- Other languages: call the same endpoint directly
- Registration: name, description, optional branch
- The key is visible, copyable, renewable
- Active / inactive switch
- Retention per application
- Permanent deletion of expired records
- Full-text search over message and source
- Level, application, environment and date filters
- Multi-level selection
- Trail by correlation id
- Live stream: pause / resume / clear
- Visibility confined to the organisation
- Level and above, time window, threshold
- Optional search text
- A single application or the whole organisation
- Cooldown period
- Email notification
- Permanent trigger history
- Total volume, the last day, the last day's errors
- Distribution by level and application
- Hourly and daily series; errors separately
- Latest errors and latest alerts
- Applications quiet for a day
- Brands and branches
- Staff: branch and role assignment
- The branch selector narrows three screens
- Sign-in with Vosetu Passport; no local password
- Module market: switch Alerts and Analytics on / off
- Subscription status: plan, quota, trial
- Turkish and English
Setup and packages
Chronicle runs in the cloud on a subscription: the panel and the server are with us, your applications only send records with their keys. Connecting an application requires installing nothing on your server; .NET applications add the client library, others call the ingest endpoint directly.
Packages scale with log volume: each includes a set number of applications, monthly events and a retention period; growth beyond that is billed monthly. The entry package covers ingest, search, correlation trail and the live stream; the team package adds alert rules and the analytics dashboard; the enterprise package comes with a wider quota. Every package starts with a free trial that asks for no card; the current list and prices are on the product's own pricing page.
Quota overrun never runs silently: when the monthly event quota is used up new records are not accepted, past logs and panel access are unaffected, and the state shows on the subscription screen. Even if the pricing page is temporarily unreachable, the panel, logs, alerts and analytics keep working.
- Cloud subscription; nothing to install on your server
- Packages by applications, monthly events and retention
- Free trial without a card
- Stops visibly when the quota is full; history preserved
Your first log in five steps
1 · Register the application
Sign in to the panel with Passport, enter the application's name and, if you like, a retention period; the key is generated.
2 · Place the key
Copy the key into the application's configuration; add the client library in .NET, call the ingest endpoint in other languages.
3 · Send the first record
The application's existing log calls now reach Chronicle too; the first record shows in the live stream and on the Logs screen.
4 · Add a correlation id
Log the same id at the start and end of a request; the trail of a request passing through several applications opens in one click.
5 · Set an alert rule
Set a threshold and time window for error level and above, enter notification addresses; learn about a problem without looking at the logs.
Technology
- .NET 9 Web API
- PostgreSQL, full-text search
- A persistent connection for the live stream
- Background jobs: alert evaluation, retention cleanup
- Official .NET 9 client library
- Sending from any language over plain HTTP
- Angular 20
- Turkish and English
- Docker containers, continuous delivery with Jenkins
- Passport single sign-on
- Subscription and quotas from the central subscription service
A log centre earns its place the moment a customer reports a problem and the team finds the answer without connecting to a server. That is why Chronicle keeps search, trail and alert on the same record.
Frequently asked
What is Chronicle and what is it for?
Chronicle is a log and event management service that gathers the logs of many applications into one centre. Applications send structured records with their own keys; the team runs full-text search from a single panel, watches records live, follows a request's trail across applications by correlation id, receives email through threshold-based alert rules and sees the overall picture on the analytics dashboard.
How do I connect my application to Chronicle?
You register the application in the panel and take its key. In .NET applications the official client library hooks into the existing logging infrastructure and sends records in the background; applications written in other languages call the same ingest endpoint directly with the key. Nothing else needs to be installed on your server.
Does sending logs slow my application down?
No. The client library queues records in the background and sends them in batches; the code writing the log never waits. When Chronicle is unreachable it retries a limited number of times, and if it hits the rate limit it holds records in the queue and sends them later; in no case does it disrupt the application's flow.
How do I follow a request across several applications?
You give the request a correlation id and log with the same id in every application. Chronicle lines up all records carrying that id in time order, whichever application they came from; in the panel the trail opens in one click from any row.
How does the alert email work?
A rule consists of a level, a time window, a threshold and notification addresses; it can be tied to a single application or count the whole organisation. When the threshold of records lands within the window, an email goes out with the rule name, matched count and a sample message, and the trigger is written to history. A cooldown delays the same rule from firing repeatedly.
How long are logs kept?
Retention is set per application in days, up to the ceiling the package allows. Expired records are deleted regularly and permanently, and cannot be recovered. If the period is left empty, records are kept within the package ceiling.
What do I do if a key leaks?
You renew the key from the panel without deleting the application. The new key invalidates the old one instantly; past logs stay, you only need to put the new key into the application's configuration. If needed you can switch the application to inactive and stop intake entirely.
What happens when the monthly quota is used up?
New records are not accepted; past logs, search, alerts and panel access are unaffected. The state shows on the subscription screen; when the quota renews or you move to a higher package, intake resumes by itself. Quota overrun never runs silently.
Bring your logs into one centre
Tell us how many applications you have and where your logs live today; we will connect the first application together and set up alert rules around your team's on-call routine. You will be talking to the team that wrote the product, not a sales team.