First Project¶
Create your first project and get SerOps analyzing incidents in your own stack. Time budget: ~20 minutes end-to-end if you already have a log provider (Elasticsearch, Loki, Datadog, CloudWatch, ...).
If you haven't installed SerOps yet, start with the Quick Start.
What you'll build¶
By the end you'll have:
- A project grouping the services you care about.
- One or more environments (production, staging, ...) mapped to your Git branch names.
- At least one service connected to your source control (SCM) and/or CI/CD provider.
- A working log-provider connection so SerOps can pull the raw logs it analyzes.
- A first batch with an AI-authored incident summary.
Step 1 — Create the project¶
- Log in.
- Click Projects in the left sidebar.
- Click + New Project.
- Fill in:
- Name — short and stable (
checkout-api,payments-platform). Used in prompts + notifications. - Description — optional but recommended. The AI reads this and uses it when reasoning about incidents ("the checkout API handles Stripe webhooks..."). A one-liner is fine.
- Name — short and stable (
- Click Create.
Step 2 — Configure environments¶
The batch pipeline uses environments to answer "which env is this incident from." Without this, all logs land in a single bucket.
- On your new project, click ⚙️ Settings.
- Open the Environments tab.
- Enable the environments you actually deploy to:
- ✅ Production
- ⬜ Staging (if applicable)
- ⬜ Development (if applicable)
-
Adjust branch patterns so SerOps can auto-tag which env a commit belongs to:
Environment Typical branch pattern Production main,master,release/*Staging develop,stagingDevelopment feature/*,dev/*
The default patterns work for most GitHub-Flow / GitLab-Flow repos.
Step 3 — Connect an integration¶
SerOps needs at least one source-of-signal. The most common trio is logs + SCM + CI/CD but any subset works (see auto-detect — the AI adapts to what's available).
- Go to Integrations.
- Click + Add Integration and pick a provider.
- Fill the connection form and click Save.
- Click Verify to confirm the credentials work.
Recommended first integrations:
- Source Control — GitLab, GitHub, Bitbucket, or Azure DevOps. Powers "what code changed just before this error?".
- Observability — Elasticsearch, Loki, Datadog, CloudWatch, OpenSearch, or Splunk. Provides the logs the AI analyzes.
- CI/CD — GitLab CI, GitHub Actions, Jenkins, Bitbucket Pipelines, or Azure Pipelines. Provides failed-job outputs for post-deploy incidents.
See Connect Your First Provider for per-provider setup.
Step 4 — Add services to the project¶
Services are the "unit of ownership" — one microservice, one API, one worker fleet.
- Back on the project page, click + New Service.
- Pick the binding type:
- Source Control (SCM) — one repo per service. Enables code-change correlation.
- CI/CD — one pipeline per service (a service can have many). Enables deploy-timestamp correlation + failed-job analysis.
- Choose the provider and pick a repository / project from the dropdown. If nothing shows up, re-verify the integration.
- Follow the wizard.
You can add multiple services per project. The AI reasons about the whole project as one system.
Step 5 — Wire the webhook (real-time updates)¶
Batch pipelines run on a schedule, but webhooks let SerOps react immediately to a push, merge, or failed CI job.
- Open the service detail.
- Copy the Webhook URL and Secret.
- Paste both into your provider's webhook settings:
- GitHub: repo Settings > Webhooks > Add webhook
- GitLab: project Settings > Webhooks
- Bitbucket: repo Repository settings > Webhooks
- Jenkins: use the "Generic Webhook Trigger" plugin
- Trigger a push and confirm SerOps receives the event (the Analyses page will show fresh activity).
If the webhook fires but nothing appears in SerOps, check Troubleshooting > Integrations.
Step 6 — Wait for the first batch¶
SerOps aggregates logs, metrics, distributed traces, code changes, and CI/CD outputs into a batch at a configurable interval (default: every few minutes; see Settings > Data Management).
- Go to the Analyses page.
- When your first batch appears, click it to open the detail view.
- Scroll to AI Analysis — you'll see the AI-authored summary, detected issues, and root-cause hypotheses.
The first batch may take a few minutes if your log provider is warm or if the AI provider is under load. Subsequent batches are typically sub-minute end-to-end.
Step 7 — Verify AI cost tracking (optional but recommended)¶
If you're paying for a hosted AI provider (OpenAI, Anthropic, Google), enable a monthly budget cap early so a runaway loop can't burn through your quota:
- Settings > AI Providers > Monthly Budget.
- Set a conservative cap (start with $50-$100).
- The dashboard warns at 80% by default and pauses AI at 100% until the calendar month resets. Rule-based issue creation continues either way.
See Track AI Costs for the full breakdown and Troubleshooting > Cost budget for what to do when the cap trips.
Common first-project issues¶
| Issue | Solution |
|---|---|
| No batches ever appear | Check that at least one service is connected + the log provider is verified. Check Settings > Data Management for batch cadence. |
| Batches appear but are empty | Log provider isn't returning matches for the batch time window. Verify the service_name field in your logs matches the SerOps service name exactly — see Configure Data Collection Agents. |
| Batches analyzed but AI shows "No API key configured" | Add an AI provider under Settings > AI Providers and click Test Connection. |
Analysis fails with AUTH_ERROR / QUOTA_EXCEEDED |
See the AI Analysis error table. |
| AI says "no logs provided" but you have logs | Log-provider filter mismatch. Check that the SerOps service name matches your logs' service_name. |
Next steps¶
- Explore the Dashboard — cross-project view, incident heatmap, cost tracking
- Use AI Chat — ask questions across all batches
- Set up Notifications — Slack, Teams, PagerDuty, OpsGenie
- Configure Sentinel — tiered intelligence that filters low-signal batches
- Auto-detect data sources — how SerOps adapts to whatever subset of logs / metrics / traces / SCM you actually have