Monitor your deployment
This section explores the observability and monitoring options open to you within Qlik Cloud.
Event based micro-services architecture
The published APIs in Qlik Cloud provide different ways to get historical and operational (point-in-time) data. The platform is powered by independent microservices that use events to interact with each other when downstream action is required.
When a new app is created, the apps service publishes an app.created
event to the event bus.
Other services subscribed to this event will pick it up and complete their programmed actions.
For example, the services running the catalog will pick up the event and add the app to the
catalog with the relevant metadata.
If the app is deleted, an app.deleted
event will be emitted. All data will be purged from
the apps service, and the data in other services will be similarly purged. The event will
remain captured and provide an audit trail of activity in the tenant.
These events are published to the audits API. You can also use the webhooks service and API to subscribe your external services to a subset of these events.
Events don’t contain full object metadata. To get a full picture, supplement the event with data from the service, which requires that you capture the data from the relevant service while the asset still exists.
For example, after app creation, you will see this event in the audits service:
{
"id": "661ecb16e5d630eb801d4ed9",
"contentType": "application/json",
"data": {
"_resourcetype": "app",
"createdByAction": "import",
"createdDate": "2024-04-16T19:01:39.926Z",
"custom": {},
"description": "See through the eyes of a consumer goods company. Analyze sales data by sales rep, region, product, etc.",
"dynamicColor": "hsla(74,18%,43%,1)",
"hasSectionAccess": false,
"id": "53c22dea-e7b9-40a3-ba16-d47efd4f6fab",
"isDirectQueryMode": false,
"lastReloadTime": "2023-01-23T21:39:19.658Z",
"modifiedDate": "2024-04-16T19:01:42.396Z",
"name": "Consumer Sales",
"originAppId": "",
"ownerId": "6422bbf043af68ebe8abbb71",
"publishTime": "",
"published": false,
"size": {
"file": 458752,
"memory": 15612372
},
"spaceId": "661d47fed3ee7a5fe23b908d",
"thumbnail": "/api/v1/apps/53c22dea-e7b9-40a3-ba16-d47efd4f6fab/media/files/consumer.png",
"usage": "ANALYTICS"
},
"eventId": "b32257c2-44aa-4125-9445-4500aefad57e",
"eventTime": "2024-04-16T19:01:42Z",
"eventType": "com.qlik.app.created",
"source": "com.qlik/engine",
"tenantId": "Hj5p89bylz1r2AUC6joLNuHzVx5Ya8cF",
"userId": "6422bbf043af68ebe8abbb71",
"links": {
"Self": {
"Href": "https://oem-preview.us.qlikcloud.com/api/v1/audits/661ecb16e5d630eb801d4ed9"
},
"self": {
"href": "https://oem-preview.us.qlikcloud.com/api/v1/audits/661ecb16e5d630eb801d4ed9"
}
}
}
There’s a lot of data in this record, but many items are only identifiers. If you want a full picture with human-readable data, you may wish to look up the following:
spaceId
: retrieve the name of the space from the Spaces API.userId
/ownerId
: retrieve the name of the user from the Users API.- Any associated collections: look up the
data.id
value in the Items API by using theresourceId
filter.
With the exception of a user subject
and the license key, all
other IDs and system-generated data in the platform should be considered
tenant-specific. This means that when looking across tenants, you can only associate data based
on the license key and the user subject.
Qlik Cloud monitoring applications
For customers with a capacity entitlement, the Data Capacity Reporting App provides an overview of their resource consumption relative to their purchased entitlement. This app automatically consolidates data from across your tenants, but at the time of writing, it only includes IDs from each tenant and no other metadata.
For monitoring purposes, the Qlik community maintains the Qlik Cloud monitoring applications which provide a full, metadata-inclusive history of usage and activity in your tenants. They automatically build and maintain a snapshot of application information to ensure no loss of data when assets are deleted from each tenant. These apps can be configured to support multiple tenant deployments and have been tested on deployments of thousands of tenants.
You should adhere to the following good practices:
- Deploy the monitoring apps to a single tenant to simplify secret management for the third-party store required for data aggregation.
- Schedule regular reloads of the app to ensure that each load pulls only a small amount of data, as the apps are configured to load incrementally.
- Review the documentation provided with the apps to learn about and configure data alerts, keeping you up to date about issues with your deployment.
Data handling and off-boarding
A common requirement for product deployments is compliance with any data handling terms present in your customer contracts. While you can easily delete a tenant, which purges all tenant-related data from Qlik Cloud, you should keep track of any usage data exported from the tenant to cloud file storage, other Qlik Cloud tenants, or your own systems. This helps simplify data privacy and security processes.
Now that you understand how to structure your deployment, look at the Platform Operations series to start building.