Data flow 110
Data Collection and Processing in Tracardi v1.1.0
In version 1.1.0, Tracardi introduces a restructured data flow process to improve load distribution across a cluster. Though the core Docker images remain the same, they are now deployable across multiple nodes, with dedicated workers for each data processing stage. Here’s a breakdown of the updated data flow and processing in v1.1.0:
Note
Before you begin learn the pod naming convention.
1. Collection
- Component:
tracardi-api
Docker (represented bypublic-api
andprivate-api
pods in Kubernetes). - Function: Data is collected through the API and stored immediately after the source is verified, unlike in v1.0.0, where initial processing was performed. This simplification enables efficient data queuing without delay.
- Primary Output: Data (profiles, sessions, and events) queued to Apache Pulsar after source verification, ready for processing by other designated workers.
2. Processing
- Component: Dedicated processing worker (
wk-pl-collector
pod). - Function: Data processing occurs in a separate worker thread within the cluster, managed by the
wk-pl-collector
pod if configured (worker.collector.enabled: True
in Helm chart). This enables scalability by isolating processing from API handling. If thewk-pl-collector
pod is not enabled, processing defaults to the API. This may introduce some lag in data processing. - Primary Output: Processed profiles, sessions, and events queued for storage, allowing for enhanced performance by offloading processing from the API.
3. Storage
- Component: Background worker (
wk-pl-background
pod). - Function: Similar to v1.0.0, the
wk-pl-background
worker batches data and stores profiles, sessions, and events in the database for future access and analysis. - Primary Output: Persisted data in the database, ensuring structured, reliable storage.
4. Dispatch
- Component: Background worker (
wk-pl-background
pod). - Function: Data dispatch to external systems remains the responsibility of the background worker. This stage configures and sends data as needed for integration with external systems.
- Primary Output: Data sent to external destinations based on defined configurations, maintaining external system updates.
5. Workflow Execution
- Component: Dedicated workflow worker (
wk-pl-workflow
pod). - Function: Workflow execution is managed by the
wk-pl-workflow
pod if enabled (worker.workflow.enabled: True
in Helm chart). This dedicated worker handles workflow triggering based on events and conditions within Tracardi, enhancing the platform’s automation capabilities. If disabled, no pod is allocated for this process and workflow is disabled. - Primary Output: Workflow actions executed, with isolated handling that enables distributed, scalable processing of workflow events.
Summary
In Tracardi v1.1.0, the API (tracardi-api
) handles initial data collection, while separate workers—wk-pl-collector
for processing and wk-pl-workflow
for workflows—enable distributed background processing. This design improves
scalability and allows each stage to operate independently, enhancing performance and fault tolerance across the
Tracardi cluster.
Troubleshooting Common Issues
-
Data Missing in Database Despite 200 API Response
- Cause: While the API collects and verifies data, the background or collector worker might encounter issues, preventing storage.
- Solution: Check logs for the
wk-pl-background
orwk-pl-collector
worker:- Out of Memory: Increase the memory allocation if high data volumes are causing resource constraints.
- Lost Connections: Verify connections to MySQL, Pulsar, and other essential services.
- License Expiration: Expired licenses may cause worker restarts; confirm the license status.
-
Public API Fails with 500 Error, While Private API Functions
- Cause: An issue with the
public-api
component. - Solution: Review
public-api
logs for specific error details to diagnose the issue.
- Cause: An issue with the
-
GUI Inaccessible, Private API Non-Responsive
- Cause:
private-api
might have issues affecting GUI connectivity. - Solution: Inspect
private-api
logs for error entries and troubleshoot accordingly.
- Cause:
-
Profile Auto-Merging Not Occurring
- Cause: The auto-profile merging function is inactive.
- Solution: Check logs for the auto-profile merging worker (e.g.,
wk-apm
pod) to diagnose any issues.
-
GUI Not Accessible
- Cause: A deployment issue with the frontend (
fe-rj-gui
). - Solution: Review logs for
fe-rj-gui
to identify errors affecting GUI accessibility.
- Cause: A deployment issue with the frontend (
-
No workflow triggered
- Cause: The workflow pod is inactive.
- Solution: Enable
worker.workflow.enabled: True
in helm chart. If enabled see thewk-pl-workflow
for errors.
- Error: TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block]
- Cause: There is too little space on disk.
- Solution: Add disk or change elasticsearch settings: e.g
curl -X PUT -H "Content-Type: application/json" http://localhost:9200/_cluster/settings?pretty -d' { "transient": { "cluster.routing.allocation.disk.watermark.low": "10gb", "cluster.routing.allocation.disk.watermark.high": "10mb", "cluster.routing.allocation.disk.watermark.flood_stage": "10mb", "cluster.info.update.interval": "1m"}}'
.
Additionally, refer to the Monitoring/Logs section in the Tracardi GUI for centralized logging of major issues across all services.