View this page in the latest version of Appian. Set Up Process Insights for Appian on Kubernetes Share Share via LinkedIn Reddit Email Copy Link Print On This Page This page describes how system administrators can set up the process insights capability of Process HQ in an Appian on Kubernetes environment. Caution: This setup applies only to Appian 26.6, where process insights requires a standalone infrastructure. In Appian 26.9 and later, that infrastructure is no longer required, so upgrade to 26.9 or later instead of completing this setup when possible. If you complete this setup in 26.6, you must decommission the standalone infrastructure when you upgrade to 26.9 or later. What is process insights? Process insights lets business users explore how processes actually run in your organization. Users can track performance with key performance indicators (KPIs), investigate specific cases, and generate shareable insights—all within Process HQ. Deployment summary In self-managed environments, the process insights capability is deployed as a separate Helm chart, independent from the Appian Operator. All process data remains on your infrastructure. Process insights does not require Appian AI. A small number of Process HQ features are enhanced by Appian AI if you choose to configure it separately. Prerequisites Software Appian 26.6 or later. Any version of Appian on Kubernetes. Advanced or Premium tier. Helm 3.x. Infrastructure Your organization must provision and manage the following resources: PostgreSQL 14 or later. You are responsible for encryption configuration, backups, restores, and updates. To set up process insights, you will need the hostname, port, database name, and credentials. Object storage. Process insights requires object storage and accesses it using the Amazon S3 API. You are responsible for provisioning and maintaining the bucket and configuring access control and encryption. To set up process insights, provide the endpoint URL, bucket name, access key, and secret key. Appian has tested self-managed process insights with Amazon S3. Process insights can work with other storage solutions that implement the S3 API, provided the S3 API request reaches the object store without being modified after it has been signed. Request failures can occur when components in the request path—such as proxies or ingress controllers—add or rewrite headers after signing. Appian does not guarantee compatibility outside Amazon S3. If you use a non-S3 store, confirm that process insights can complete reads and writes end-to-end in your environment before relying on it in production. Backups. Your organization is responsible for any backups of these resources, in addition to any Appian system backup. We recommend that you back up a snapshot of both the PostgreSQL and object storage resources at the same time. In the event of backup failure, you can also recreate the data in these resources by manually updating each process in Process HQ. Network The PostgreSQL database must be accessible from the process insights pods within the cluster. The process insights pods must be reachable from the Appian webapp (cluster-internal). The process insights pods require outbound access to the PostgreSQL endpoint and S3-compatible endpoint. Process insights installs network policies during setup. Appian recommends enforcing these policies via container network interface (CNI). Experience Your organization must have experience with the following: Helm kubectl Kubernetes secrets PostgreSQL S3-compatible object storage Step 1: Contact Appian Support Contact Appian Support to enable process insights for your environment. Step 2: Configure the PostgreSQL database To configure the PostgreSQL database: Provision a PostgreSQL 14 or later database. Replace the placeholders in the following command, then run the command on the database to create the schema and user needed to support process insights operations. -- Create schema CREATE SCHEMA IF NOT EXISTS main; -- Create extensions CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA main; -- Create application users (non-superuser) CREATE USER <username> WITH PASSWORD '<password>'; -- Grant connect privileges GRANT CONNECT ON DATABASE <database name> TO <username>; -- Schema owner privileges GRANT ALL ON SCHEMA main TO <username>; GRANT CREATE ON DATABASE <database name> TO <username>; Step 3: Download the Helm chart To download the Helm chart for the process insights capability: Generate temporary credentials for Appian's container registry. Sign in to the registry. Pull the Helm chart by running the following command: 1 helm pull oci://937620572175.dkr.ecr.<REGION>.amazonaws.com/helm-charts/appian-process-insights --version <HELM_CHART_VERSION> where <REGION> is the region you selected when generating temporary registry credentials, and <HELM_CHART_VERSION> is the version of the process insights Helm chart. Step 4 (Optional): Configure high availability Process insights supports high availability (HA) configuration through multiple Janus replicas and Pod Disruption Budgets. However, achieving HA also depends on the infrastructure your organization has in place—your PostgreSQL deployment, your object storage setup, and your Kubernetes cluster topology. To configure the Helm chart for HA, update the values of the following fields: Field New Value Purpose janus.replicas 2 Sets two Janus replicas so if one goes down (for example, due to an AZ outage), the other handles traffic. janus.pdb.enabled true Enables a pod disruption budget (PDB) so the cluster ensures at least one Janus instance is always available during node restarts. thor.resources.deploymentReplicas 2 Runs two Thor instances per log. PDBs are always created automatically for Thor instances. Step 5: Create Kubernetes secrets Note: You should rotate secrets regularly. Any updates to secrets will require restarting Appian. To create the secrets needed to set up process insights: Create a secret to store the username and password of the user you created in PostgreSQL: 1 2 3 4 kubectl create secret generic process-insights-database-credentials \ --from-literal=username="<database username>" \ --from-literal=password="<database password>" \ -n <namespace> where: Placeholder Description <database username> The PosgreSQL username. <database password> The password for the PostgreSQL user. <namespace> The namespace of the Appian platform in your self-managed environment. Create a secret to store the access key and secret access key for the S3-compatible object storage: 1 2 3 4 kubectl create secret generic process-insights-objectstore-credentials \ --from-literal=accessKeyId="<object store access key id>" \ --from-literal=secretAccessKey="<object store secret access key>" \ -n <namespace> Create a secret that the system will use to calculate authentication tokens between services: 1 2 3 4 5 6 7 8 lcp_auth=$(openssl rand 64 | openssl base64 -A) thor_auth=$(openssl rand 64 | openssl base64 -A) kubectl create secret generic process-insights-auth-lcp-janus \ --from-literal=secret="${lcp_auth}" \ -n <namespace> kubectl create secret generic process-insights-auth-janus-thor \ --from-literal=secret="${thor_auth}" \ -n <namespace> Step 6: Configure the process insights values file The process insights value file is a YAML file that stores the configuration information that Kubernetes uses to deploy the process insight pods in your environment. To configure this file: Create a file named process-insights-values.yaml in your Kubernetes environment. Copy the following template into the file. Replace placeholder values with values for your environment. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # Process Insights — Self-Managed Deployment ## Container image registry and tag appianImageRegistry: "<your internal registry>" appianImageTag: "<the current tag of the version of Process Insights>" imagePullSecrets: [] # - name: my-registry-secret ## ---------- PostgreSQL ---------- postgres: host: "<hostname of the PostgreSQL database>" database: "<name of the database>" ## ---------- Object Storage (S3-compatible) ---------- s3: bucket: "<bucket name>" region: "<region>" ## Optional: custom endpoint for S3-compatible stores (e.g. MinIO) # endpointUrl: "http://minio.example.svc.cluster.local:9000" ## Name of existing K8s Secret with keys "accessKeyId" and "secretAccessKey" Step 7: Install the Helm chart Run the following command: 1 helm install appian-process-insights ./chart -f process-insights-values.yaml -n <namespace> where <namespace> is the Appian platform namespace. Step 8: Verify the deployment Run the following command: 1 kubectl get deployment appian-process-insights-janus -n <namespace> where <namespace> is the Appian platform namespace. The output should show you that the Janus pod deployed correctly and is ready for use. Other components of the process insights back end will be deployed on demand. For example: 1 2 NAME READY UP-TO-DATE AVAILABLE AGE appian-process-insights-janus 1/1 1 1 5m Step 9: Connect Appian to process insights To connect the Application Server (webapp) to the process insights server: Add the following environment variable to your Appian CR configuration file: 1 2 3 4 5 6 7 8 spec: webapp: env: - name: PROCESS_MINING_HMAC_JWT_SECRET valueFrom: secretKeyRef: key: secret name: process-insights-auth-lcp-janus Add the following custom properties to your Appian CR configuration file: 1 2 3 4 spec: customProperties: conf.iam.pm.unifiedMiningPmRedirectUri: "http://appian-process-insights-janus.<namespace>.svc.cluster.local" conf.iam.pm.unifiedMiningPmAudience: "process-mining-janus.<region>" where <region> is the region of the S3 bucket you're using. For example, "us-east-1". Restart the Application Server. Step 10: Validate the setup To validate that the setup is successful: In Appian, assign yourself as a data steward for the record types that store process data. Open the navigation menu, and select Process HQ. By default, the Home page appears. In the left navigation menu, click Process Insights. The Process Insights page appears. Add a process using data from those record types. Note: Adding a process initiates the analysis of your process data. It may take a few minutes to complete this initial analysis. Once the process status reads Update successful, verify that the process data appears: Check that the Total Cases column and Average Duration values for the process are populated in the process list. Click the name of the process in the process list, and confirm that process data is present in the header and analysis panes. Feedback Was this page helpful? SHARE FEEDBACK Loading...