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
2 changes: 1 addition & 1 deletion .github/workflows/add-mapping-version.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
workflow_dispatch:
inputs:
agent-version:
description: "The version of the FluentDo agent to add"
description: "The version of the agent to add"
required: true
type: string
oss-version:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-offline.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,6 @@ jobs:

- uses: actions/upload-artifact@v6
with:
name: fluentdo-agent-documentation
name: agent-documentation
path: "*.tgz"
if-no-files-found: error
6 changes: 3 additions & 3 deletions .github/workflows/call-add-mapping-version.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
workflow_call:
inputs:
agent-version:
description: 'The version of the FluentDo agent to add'
description: 'The version of the Agent to add'
required: true
type: string
oss-version:
Expand Down Expand Up @@ -42,7 +42,7 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v6
with:
repository: fluentdo/documentation
repository: telemetryforge/documentation
token: ${{ steps.get-secrets.outputs.github-pat }}

- name: Install tools
Expand Down Expand Up @@ -89,7 +89,7 @@ jobs:
token: ${{ steps.get-secrets.outputs.github-pat }}
labels: ci,automerge
body: |
Mapping version added for FluentDo agent ${{ inputs.agent-version }}:
Mapping version added for agent ${{ inputs.agent-version }}:
- Agent Version: `${{ inputs.agent-version }}`
- OSS Version: `${{ inputs.oss-version }}`

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Documentation is generated via `mkdocs` and hosted in Vercel.
## Security reporting

The security documentation is all generated via [`scripts/security/run-scans.sh`](scripts/security/run-scans.sh) once a week automatically.
The versions to be scanned (OSS and FluentDo) are configured in [`scripts/security/scan-config.json`](scripts/security/scan-config.json).
The versions to be scanned (OSS and commercial) are configured in [`scripts/security/scan-config.json`](scripts/security/scan-config.json).

Markdown templates are provided for Grype in [`scripts/security/templates/grype-markdown.tmpl`](scripts/security/templates/grype-markdown.tmpl).

Expand Down
6 changes: 3 additions & 3 deletions docs/build-optimisations.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Build Optimisations

FluentDo Agent is **~70% smaller than OSS Fluent Bit** through strategic optimisations while maintaining security and performance.
Our Agent is **~70% smaller than OSS Fluent Bit** through strategic optimisations while maintaining security and performance.

## Optimisation Techniques

Expand Down Expand Up @@ -52,7 +52,7 @@ set(CMAKE_C_FLAGS "${SAVED_CMAKE_C_FLAGS}")

## Size Impact

| Metric | OSS Fluent Bit | FluentDo Agent | Reduction |
| Metric | OSS Fluent Bit | Telemetry Forge Agent | Reduction |
|--------|---------------|----------------|-----------|
| Docker Image Size | ~500MB | ~150MB | ~70% |
| Binary Size | ~50-60MB | ~15-20MB | ~67% |
Expand Down Expand Up @@ -81,6 +81,6 @@ set(CMAKE_C_FLAGS "${SAVED_CMAKE_C_FLAGS}")

If you need plugins that are disabled by default, you can:

1. **Request a custom build** from FluentDo support with specific plugins enabled
1. **Request a custom build** from our commercial support with specific plugins enabled
2. **Use OSS Fluent Bit** if vendor-specific plugins are required
3. **Build from source** with your required configuration
19 changes: 10 additions & 9 deletions docs/features/record-deduplication.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ processors:
### Configuration Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| --------- | ---- | ------- | ----------- |
| `ttl` | Time | 3600s | Time to live for deduplication entries |
| `cache_size` | Size | 100M | RocksDB block cache size |
| `write_buffer_size` | Size | 64M | Write buffer size for batching |
Expand All @@ -67,7 +67,7 @@ Here's a full configuration example showing how to enable deduplication with met
service:
flush: 1
log_level: info

# Enable HTTP server for metrics endpoint
http_server: on
http_listen: 0.0.0.0
Expand All @@ -86,18 +86,18 @@ pipeline:
cache_size: 100M # 100MB cache
write_buffer_size: 64M # 64MB write buffer
compact_interval: 300s # Compact every 5 minutes

# Fields to ignore when calculating hash
ignore_fields:
- timestamp
- request_id
- session_id

# Regex patterns for fields to ignore
ignore_regexes:
- ".*_time$"
- "^trace_.*"

- name: systemd
tag: system.logs
systemd_filter: _SYSTEMD_UNIT=nginx.service
Expand Down Expand Up @@ -150,12 +150,12 @@ The processor uses bloom filters and hash indexing to minimize disk I/O, ensurin
| `fluentbit_processor_dedup_live_data_size_bytes` | Gauge | Size of live data in RocksDB (excluding expired entries) |
| `fluentbit_processor_dedup_compactions_total` | Counter | Total number of database compactions performed |


## Use Cases

### 1. Kubernetes Log Collection

Ignore pod-specific fields while deduplicating application logs:

```yaml
ignore_fields:
- kubernetes.pod_id
Expand All @@ -167,6 +167,7 @@ ignore_regexes:
### 2. Load Balancer Access Logs

Deduplicate health check spam:

```yaml
ignore_fields:
- timestamp
Expand All @@ -177,6 +178,7 @@ ignore_fields:
### 3. Application Error Logs

Catch repeated errors while preserving first occurrence:

```yaml
ttl: 3600s # 1 hour window
ignore_fields:
Expand All @@ -185,7 +187,6 @@ ignore_fields:
- request_context
```


## Future Work

- **Probabilistic Structures**: HyperLogLog for memory-efficient cardinality estimation
Expand All @@ -196,8 +197,8 @@ ignore_fields:
## Getting Started

1. Enable the deduplication processor in your Fluent Bit configuration
2. Attach it to any input that experiences duplicate logs
2. Attach it to any input that experiences duplicate logs
3. Configure TTL and field filtering based on your use case
4. Monitor deduplication effectiveness via Prometheus metrics

For additional support and enterprise features, contact the FluentDo team.
For additional support and enterprise features, contact our team.
10 changes: 5 additions & 5 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# FluentDo Agent Documentation
# Telemetry Forge Agent Documentation

## What is FluentDo Agent?
## What is our Agent?

FluentDo Agent is an **enterprise-hardened distribution of Fluent Bit**, maintained by core OSS maintainers. It delivers production-ready log processing with enhanced security, reduced footprint, and enterprise support.
The Telemetry Forge Agent is an **enterprise-hardened distribution of Fluent Bit**, maintained by core OSS maintainers. It delivers production-ready log processing with enhanced security, reduced footprint, and enterprise support.

### Key Differentiators

Expand All @@ -26,7 +26,7 @@ FluentDo Agent is an **enterprise-hardened distribution of Fluent Bit**, maintai
## Documentation

- [Supported Platforms](./supported-platforms.md) - Verified OS and architecture support
- [Version Mapping](./version-mapping.md) - FluentDo to OSS Fluent Bit version alignment
- [Version Mapping](./version-mapping.md) - Agent to OSS Fluent Bit version alignment
- [Security](./security.md) - Hardening features and CVE management
- [OSS Fluent Bit Docs](https://docs.fluentbit.io) - Core documentation reference

Expand Down Expand Up @@ -59,7 +59,7 @@ Available directly via [Red Hat catalog](https://catalog.redhat.com/software/con

## Build Optimisations

FluentDo Agent is **70% smaller than OSS Fluent Bit** through:
Our Agent is **70% smaller than OSS Fluent Bit** through:

- **Reduced scope** - Only production-essential plugins included
- **Secure defaults** - Vendor-specific and risky plugins disabled
Expand Down
12 changes: 6 additions & 6 deletions docs/security.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Security information

FluentDo provides an agent with the following security and compliance considerations:
We provide an agent with the following security and compliance considerations:

- 24-month LTS support
- Weekly releases for CVEs and critical bugs
Expand All @@ -14,9 +14,9 @@ FluentDo provides an agent with the following security and compliance considerat

## Cosign

All images are signed with Cosign using both the keyless approach with Fulcio and a dedicated Cosign private key (from 25.10.3) integrated into Github Actions directly: <https://github.com/FluentDo/agent/blob/main/.github/workflows/call-build-containers.yaml>
All images are signed with Cosign using both the keyless approach with Fulcio and a dedicated Cosign private key (from 25.10.3) integrated into Github Actions directly: <https://github.com/telemetryforge/agent/blob/main/.github/workflows/call-build-containers.yaml>

The public key is available here: <https://raw.githubusercontent.com/FluentDo/agent/refs/heads/main/cosign.pub>
The public key is available here: <https://raw.githubusercontent.com/telemetryforge/agent/refs/heads/main/cosign.pub>

```text
-----BEGIN PUBLIC KEY-----
Expand All @@ -29,7 +29,7 @@ To verify follow the instructions provided by Cosign: <https://docs.sigstore.dev

## GPG

All Linux packages should be GPG-signed using the following [key](https://raw.githubusercontent.com/FluentDo/agent/refs/heads/main/gpg.pub):
All Linux packages should be GPG-signed using the following [key](https://raw.githubusercontent.com/telemetryforge/agent/refs/heads/main/gpg.pub):

```text
-----BEGIN PGP PUBLIC KEY BLOCK-----
Expand Down Expand Up @@ -62,7 +62,7 @@ This information is for releases `v25.12` and `v25.10.8` onwards, for earlier re

## CVEs

We triage and resolve all CVEs reported against the FluentDo agent (and to some degree OSS too), please see [this page](./security/cves.md).
We triage and resolve all CVEs reported against the Agent (and to some degree OSS too), please see [this page](./security/cves.md).

We provide triaged CVE reports both as a [web page](./security/triaged.md) or a [VEX endpoint](./security/vex.json) for easy inclusion in security tooling deployed in your infrastructure.

Expand Down Expand Up @@ -107,7 +107,7 @@ To minimize attack surface and binary size, the following 17 plugins are **disab

- `FLB_IN_CALYPTIA_FLEET` - Calyptia fleet management (vendor-specific)
- `FLB_IN_DOCKER` - Docker container metrics
- `FLB_IN_DOCKER_EVENTS` - Docker events monitoring
- `FLB_IN_DOCKER_EVENTS` - Docker events monitoring
- `FLB_IN_EXEC_WASI` - WebAssembly System Interface executor
- `FLB_IN_MQTT` - MQTT broker input
- `FLB_IN_NETIF` - Network interface statistics
Expand Down
6 changes: 3 additions & 3 deletions docs/supported-platforms.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Supported Platforms

The FluentDo agent supports all major architectures including `x86_64` and `arm64` as well as optionally `riscv64`, `s390x` and others.
Our Agent supports all major architectures including `x86_64` and `arm64` as well as optionally `riscv64`, `s390x` and others.

Releases can be found or watched here: <https://github.com/FluentDo/agent>
Releases can be found or watched here: <https://github.com/telemetryforge/agent>

Packages are available via [https://packages.fluent.do](https://packages.fluent.do/index.html).

Expand All @@ -16,7 +16,7 @@ We test against a matrix of vanilla Kubernetes versions along with the various d

## Container images

All images are built from our Github repo and available via ghcr.io: `ghcr.io/fluentdo/agent`
All images are built from our Github repo and available via ghcr.io: `ghcr.io/telemetryforge/agent`

* UBI-based image: uses the `version` tag
* Distroless image (closer match to OSS): uses the `version-slim` tag
Expand Down
6 changes: 3 additions & 3 deletions docs/version-mapping.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Opensource mapping to FluentDo Agent versions
# Opensource mapping to Agent versions

The following shows the underlying [OSS version of Fluent Bit](https://github.com/fluent/fluent-bit/releases) that the FluentDo agent is based on.
The following shows the underlying [OSS version of Fluent Bit](https://github.com/fluent/fluent-bit/releases) that the Agent is based on.

## Version mapping table

| FluentDo Agent Version | OSS Version Base |
| Agent Version | OSS Version Base |
| ---------------------- | ---------------- |
| 26.1.1 | 4.1.0 |
| 25.12.4 | 4.1.0 |
Expand Down
12 changes: 6 additions & 6 deletions mkdocs.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
site_name: FluentDo Agent Documentation
site_url: https://fluent.do
site_name: Telemetry Forge Agent Documentation
site_url: https://telemetryforge.io
nav:
- Home: index.md
- Features:
Expand All @@ -26,7 +26,7 @@ markdown_extensions:
theme:
name: material
highlightjs: true
copyright: FluentDo 2025
copyright: Telemetry Forge 2026
custom_dir: overrides
logo: assets/logo.png
favicon: assets/favicon.ico
Expand All @@ -52,7 +52,7 @@ theme:
- announce.dismiss
- navigation.footer
extra:
homepage: https://fluent.do
homepage: https://telemetryforge.io
# Disable made by mkdocs
generator: false
consent:
Expand All @@ -75,11 +75,11 @@ extra:
checked: false
social:
- icon: fontawesome/brands/github
link: https://github.com/FluentDo
link: https://github.com/telemetryforge
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/company/fluent-do
- icon: fontawesome/solid/paper-plane
link: mailto:info@fluent.do
copyright: >
Copyright &copy; 2025 FluentDo
Copyright &copy; 2026 Telemetry Forge
<a href="#__consent">Change cookie settings</a>
8 changes: 4 additions & 4 deletions scripts/add-mapping-version.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ fi
# Handle version string with or without a v prefix - we just want semver
if [[ "$NEW_AGENT_VERSION" =~ ^v?([0-9]+\.[0-9]+\.[0-9]+)$ ]] ; then
NEW_AGENT_VERSION=${BASH_REMATCH[1]}
echo "Valid FluentDo agent version string: $NEW_AGENT_VERSION"
echo "Valid Agent version string: $NEW_AGENT_VERSION"
else
echo "ERROR: Invalid FluentDo agent semver string: $NEW_AGENT_VERSION"
echo "ERROR: Invalid Agent semver string: $NEW_AGENT_VERSION"
exit 1
fi

Expand All @@ -52,12 +52,12 @@ fi

# Update the mapping file with the new version
if grep -q "| $NEW_AGENT_VERSION |" "$MAPPING_FILE"; then
echo "ERROR: Mapping for FluentDo Agent version $NEW_AGENT_VERSION already exists in $MAPPING_FILE."
echo "ERROR: Mapping for Agent version $NEW_AGENT_VERSION already exists in $MAPPING_FILE."
exit 1
fi

# Find the table header line and insert the new mapping after it
HEADER_LINE=$(grep -n "|FluentDo Agent Version|" "$MAPPING_FILE" | cut -d: -f1)
HEADER_LINE=$(grep -n "| Agent Version |" "$MAPPING_FILE" | cut -d: -f1)
if [[ -z "$HEADER_LINE" ]]; then
echo "ERROR: Header line not found in $MAPPING_FILE."
exit 1
Expand Down
2 changes: 1 addition & 1 deletion scripts/generate-offline.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ done
SCRIPT_DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )
REPO_ROOT=${REPO_ROOT:-$SCRIPT_DIR/..}
GENERATED_DOC_DIR=${GENERATED_DOC_DIR:-$REPO_ROOT/site}
OUTPUT_FILE=${OUTPUT_FILE:-$REPO_ROOT/fluentdo-agent-documentation.tgz}
OUTPUT_FILE=${OUTPUT_FILE:-$REPO_ROOT/agent-documentation.tgz}

rm -rf "$GENERATED_DOC_DIR" "$REPO_ROOT/.cache"

Expand Down
6 changes: 3 additions & 3 deletions scripts/security/run-scans.sh
Original file line number Diff line number Diff line change
Expand Up @@ -149,13 +149,13 @@ function generateReports() {

# Run grype for each Agent version
for agent_version in "${AGENT_VERSIONS[@]}"; do
generateReports "$agent_version" "agent" "ghcr.io/fluentdo/agent"
generateReports "$agent_version" "agent" "ghcr.io/telemetryforge/agent"
done

# Get latest release version of the agent from GitHub API using gh client
# We require GITHUB_TOKEN to be set in the environment for this to work reliably
# See https://docs.github.com/en/rest/releases/releases?apiVersion=2022-1128#get-the-latest-release
LATEST_AGENT_VERSION=$(gh api /repos/fluentdo/agent/releases/latest | jq -r .tag_name)
LATEST_AGENT_VERSION=$(gh api /repos/telemetryforge/agent/releases/latest | jq -r .tag_name)
# Remove any leading 'v' from the version
LATEST_AGENT_VERSION=${LATEST_AGENT_VERSION#v}
# Trim any whitespace
Expand All @@ -170,7 +170,7 @@ else
echo "Latest agent version from GitHub API is: $LATEST_AGENT_VERSION"
echo "Generating latest agent version scan with VEX filtering for version: $LATEST_AGENT_VERSION"

grype "ghcr.io/fluentdo/agent:$LATEST_AGENT_VERSION" \
grype "ghcr.io/telemetryforge/agent:$LATEST_AGENT_VERSION" \
--output template \
--template "$TEMPLATE_DIR/grype-markdown-table-above-high.tmpl" \
--file "$CVE_DIR/agent/grype-latest.md" \
Expand Down
Loading