Analytics
General description
Analytics is a component responsible for gathering analytics data. It stores all information in SQL database. It serves data for the admin panel: analytics module.
API
Default port: 5754
Application has got HTTP API which is not secured by any mechanism, therefore should NOT be visible from outside the Kubernetes cluster.
There are default endpoints for monitoring purposes. They are described in Components monitoring section.
Databases
SQL
The component has its own SQL Database for storing transcription. Main tables:
- session log - contains all conversations' information
- message_event - contains single messages within a conversation, contains details such as: dialog state, intents, variables, tags, commands, used states, and executions times
RabbitMQ
The component reads data from the queues:
- automate.analytics.message - used for getting transcriptions
- automate.jobs.XXX - used for handling jobs from cron-orchestrator
Communication
This service communicates with the following services:
Application | Config to URL | Auth |
---|---|---|
bot-integration | chatbots.senti-one-api.url | OTP |
storage | chatbots.storage-api.url | OTP |
Config
Application's config:
chatbots.analytics { db { url: "jdbc:postgresql://HOST:PORT/chatbots-analytics", user: "USER", password: "PASSWORD" max-connections: 20 } data-retention { # Max duration to keep data for, always extended to the start of a day duration: 365d # Sessions delete limit per run, can be ignored when there are more sessions in 6h period limit-per-run: 100000 }
Other required configurations:
chatbots.senti-one-api { url: "", # actual address for bot-integration service secret: "KNSWG4TFORIGC43T" # same secret as defined in bot-integration service } chatbots.messaging { rabbit { hosts: ["HOST:PORT"] username: "USER" password: "PASSWORD" } }
Play Framework config
More information about Play Framework could be found in Play Framework configuration section
Job execution
AnalyticsExport (Optional)
This optional cron job (if configured) is executing in this component. It fetches data from the DB and from bot-integration API. Then it zips the results and sends to the specified address (in the job's configuration).
Troubleshooting
No analytics data in analytics module (NOT conversation analytics)
If it is reported that analytics module does not show any data in charts it could mean that this component is not doing its job. First thing is to check if actual data exists in the underlying DB.
If the data is present in the DB then communication between admin and analytics should be investigated.
If there isn't data in the DB, next step would be to check RabbitMQ's automate.analytics.message queue. If there are messages it would mean there are probably errors when processing messages - check logs.
Updated 4 months ago