Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,9 @@ npm-debug.log*
c4/_site/
c4/_puml/
c4/.structurizr/
c4/workspace.json
c4/workspace.json

# Auto Claude data directory
.auto-claude/

.playwright-mcp/
55 changes: 47 additions & 8 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co

IceGate documentation site built with [Diplodoc](https://diplodoc.com/) (YFM - Yandex Flavored Markdown). Multi-language documentation (en, fr, ru) for an Observability Data Lake engine.

Source code repository: https://github.com/icegatetech/icegate

## Commands

```bash
npm run build # Build all languages to ./build
npm run build # Build all languages to ./build (includes llms.txt files)
npm run lint # Lint docs with --strict mode
npm run serve # Build and serve locally on port 8080
npm run clean # Remove build directory
Expand All @@ -25,18 +27,42 @@ npm run build:ru # Build Russian only
## Project Structure

```
├── en/ # English documentation
├── fr/ # French documentation
├── ru/ # Russian documentation
├── presets.yaml # Build presets (default, development, production)
├── .yfm # Diplodoc configuration (vars, langs, settings)
└── .yfmlint # Linter rules configuration
├── en/ # English documentation (primary)
├── fr/ # French documentation
├── ru/ # Russian documentation
├── llms.txt # LLM context file — overview with key examples
├── llms-full.txt # LLM context file — complete documentation content
├── presets.yaml # Build presets (default, development, production)
├── .yfm # Diplodoc configuration (vars, langs, settings)
└── .yfmlint # Linter rules configuration
```

Each language directory has identical structure:
- `index.yaml` - Landing page configuration
- `toc.yaml` - Table of contents and navigation
- `getting-started/`, `guides/`, `api-reference/`, etc. - Content sections

### Documentation Sections

| Section | Path | Description |
|---------|------|-------------|
| **Installation** | `getting-started/installation.md` | Helm chart, Kustomize overlays (production) |
| **Quick Start** | `getting-started/quickstart.md` | Ingest data, query with LogQL, use Grafana |
| **Configuration** | `getting-started/configuration.md` | Full parameter reference for all services |
| **Guides** | `guides/` | Ingestion, querying, multi-tenancy |
| **API Reference** | `api-reference/` | OTLP, Loki, Prometheus, Tempo APIs |
| **Architecture** | `architecture/` | System overview, data model |
| **Operations** | `operations/` | Deployment, maintenance, troubleshooting |
| **Development** | `development/` | Dev setup (Skaffold), building, patterns, contributing |
| **FAQ** | `faq.md` | Frequently asked questions |

## LLM Context Files

- **`llms.txt`** — Concise overview: installation, config syntax, usage examples, architecture summary. Optimized for quick LLM context loading.
- **`llms-full.txt`** — Complete English documentation concatenated. Order prioritizes production use: Installation → Configuration → Quick Start → Guides → API → Architecture → Operations → Development → FAQ.

Both files are copied to `./build/` during the build step and served at the doc site root (`/llms.txt`, `/llms-full.txt`).

When updating documentation, regenerate `llms-full.txt` after changes. `llms.txt` is manually maintained and should be updated when key features, config syntax, or APIs change.

## Configuration Files

Expand All @@ -50,6 +76,19 @@ Each language directory has identical structure:
- HTML is allowed (`allowHTML: true`)
- Files must end with newline (MD047 enforced)
- Line length not enforced (MD013 disabled)
- Config YAML examples must use serde tagged enum syntax: `backend: !rest`, `backend: !s3`, `backend: !s3tables`, `backend: !glue`, `backend: !memory`, `backend: !filesystem`
- Translate code-block comments to the target language in FR/RU docs
- Keep parameter names, CLI commands, and code syntax in English across all language translations

## Key Technical Details

- IceGate config uses **YAML tagged enums** (serde): `backend: !rest`, `backend: !s3`, `backend: !s3tables`, `backend: !glue`, `backend: !memory`, `backend: !filesystem`
- Primary installation method: **Helm chart** (`oci://ghcr.io/icegatetech/charts/icegate`)
- Development environment: **Skaffold** (`skaffold dev`) with Kustomize overlays
- Docker Compose available as alternative for local development
- Rust 1.92.0+ (2024 edition), 6 workspace crates: common, queue, query, ingest, maintain, jobmanager
- Metrics port: **9091** (not 9090). Prometheus API port is 9090.
- Real environment variables: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `RUST_LOG`

## Deployment

Expand Down
23 changes: 23 additions & 0 deletions en/api-reference/loki.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,29 @@ X-Scope-OrgID: my-tenant

## Endpoints

### Instant Query

Query logs or metrics at a single point in time.

**Endpoint:** `GET /loki/api/v1/query` or `POST /loki/api/v1/query`

**Parameters:**

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | LogQL query |
| `time` | int | No | Evaluation timestamp (Unix seconds or nanoseconds). Default: current time |
| `limit` | int | No | Maximum number of entries (default: 100) |
| `direction` | string | No | `forward` or `backward` (default: backward) |

**Example:**

```bash
curl -G http://localhost:3100/loki/api/v1/query \
--data-urlencode 'query=count_over_time({service_name="api-service"}[5m])' \
-H "X-Scope-OrgID: my-tenant"
```

### Query Range

Query logs or metrics over a time range.
Expand Down
Loading
Loading