Tutorial
Build observability dashboards with Bob, Instana, Concert
Automate dashboard creation using custom modesBuilding observability and security dashboards for enterprise applications often requires many tools, custom scripts, and hours of integration work. This tutorial shows you a faster path where IBM Bob handles most of the work while you stay in control.
In this tutorial, you use IBM Bob custom modes to generate a complete Python application that connects to IBM Instana for observability and IBM Concert for security and resilience insights. Bob guides you through planning the application, creating the architecture, generating dashboards, building integrations, and writing unit tests. You review each step and provide the requirements that steer the implementation.
By the end of this tutorial, you have a working application that displays real-time telemetry, service performance, latency trends, vulnerability data, Common Vulnerabilities and Exposures (CVE) impact, configuration risks, and security posture.
As shown in the following architecture, you will integrate Bob with IBM Instana to provide full‑stack application observability and with IBM Concert to provide IT operations insights and security resilience insights. Through these integrations, Bob generates dashboards in Instana and Concert that give a clear view of application performance, service dependencies, infrastructure health, and real‑time telemetry. The dashboards also show key resilience metrics, including vulnerability exposure, CVE impact, configuration risks, and security posture across the environment.
In this tutorial, you focus on using Bob to design and build dashboards that integrate with Instana and Concert by using Bob custom modes.

Prerequisites
- Install IBM Bob. Sign up for your free trial.
- Basic knowledge of IBM Instana and IBM Concert.
- Python 3.12 installed on your system.
- An IBM Instana instance. You can use the free 14‑day trial or provision Instana through your preferred deployment model.
- An IBM Concert instance. You can use the free trial or provision IBM Concert through your preferred deployment model.
Step 1. Provision and configure the required services
In this step, provision IBM Instana and IBM Concert, and configure each service so it can observe and analyze the application.
After you provision Instana, install the Instana agent for your deployment method to detect the application components. Instana discovers services, traces, dependencies, and performance metrics so the dashboards in this tutorial receive real-time and historical data.
Create an Application Perspective. Because all the required data is already available, you can use the Advanced Application Perspective view to create the application.
Get your Instana API key. The API key allows the dashboards to retrieve and display real-time data.
Configure the Vulnerability dimension in IBM Concert. The Vulnerability dimension helps organizations identify and prioritize CVE and non‑CVE security issues.
Get your IBM Concert API key. The API key allows the dashboards to retrieve and display real-time data.
Step 2. Configure the custom modes in Bob
In this step, you add the following custom modes in Bob.
Application Observability custom mode: Prepares Bob to act as a monitoring and performance analysis expert with strong knowledge of IBM Instana. In this mode, Bob understands Instana REST APIs, telemetry structures, distributed tracing patterns, and key performance metrics such as latency, error rates, throughput, and service dependencies.
Application Resilience mode: Prepares Bob to understand IBM Concert REST API patterns, CVE severity scoring, and certificate lifecycle management.
These two custom modes create complete, deployable applications rather than isolated code snippets.
Open the Bob IDE.
Go to File → Open Folder.
Create a new folder named
modes-instana-concert, and click Open.Click the Settings icon.

Click Modes, then choose Global Modes if you want the mode available in all workspaces, or Project Modes if you want the mode available only in this project.

Import the Application Observability mode.
For new projects:
Extract the application-observability.zip file.
Copy the following files into your
.bobdirectory:custom_modes.yamlrules-application-observability
Reload the Bob user interface.
Go to Modes → Custom Modes and select the Application Observability mode.
For existing projects:
Do not overwrite your current
.bob/custom_modes.yamlfile.Open
.bob/custom_modes.yamland append the following entry:- slug: application-observability name: Application ObservabilityAdd the folder
rules-application-observabilityto your.bob/rules/directory.Reload the Bob user interface.
Go to Modes → Custom Modes and select the Application Observability mode.
Import the Automate Resilience mode.
For new projects:
Extract the application-resilience.zip file.
Copy the following items into your
.bobdirectory:custom_modes.yamlrules-automate-resilience
Reload the Bob user interface.
Go to Modes → Custom Modes and select the Automate Resilience mode.
For existing projects:
Do not overwrite your current
.bob/custom_modes.yamlfile.Open
.bob/custom_modes.yamland append the following entry:- slug: automate-resilience name: Automate ResilienceAdd the folder
rules-automate-resilienceto your.bob/rules/directory.Reload the Bob user interface.
Go to Modes → Custom Modes and select the Automate Resilience mode.
Restart Bob, or press Ctrl (Command) + Shift + P, and select Reload Window.
Click Code. You should now see the two new custom modes.

Step 3. Plan the application
In this step, you ask Bob to create a plan for the application. Bob generates an implementation plan and a solution design. Review the plan to ensure that it matches your goals and requirements.
Make sure that you are in Plan mode. Keep auto‑approve turned off so that you can review each step and confirm that it aligns with your intended functionality.
Give Bob the following requirements for the Python application. The application must provide complete observability, resilience insights, and security insights by using the two custom modes you configured in the previous step.
Build a modular Python Dash application for Observability, Resiliency, and Security Insights for an application. Requirements: - Title: "Application Observability, Resiliency, and Security Insights" - Subtitle: "With IBM Bob, Instana, and Concert" - 2 tabs: Observability (Instana) and Security (Concert) - Use Dash Bootstrap Components for modern, responsive layout design, and Plotly charts - Implement asynchronous data fetching where applicable to prevent UI blocking - All config via .env file - Follow modular architecture with separate python file for each tab. - Follow Python best practices for the folder structure, such as src, docs, and scripts. Project Structure (follow best practices): - app.py: Main application and UI - instana_integration.py: Instana API client and data processing (Using Bob Mode: Application Observability) - concert_integration.py: Concert API client and data processing (Using Bob Mode: Automate Resilience) - requirements.txt, .env.example, setup scripts, documentation
Bob asks for access to the custom modes so that it can use the correct guidelines. Click Approve.

Bob asks clarification questions, such as how to use the custom modes. Choose Use the Bob Modes. The questions that you receive might vary.

Bob shows options for the content in each tab. Select the first option. Your clarification prompts might differ. This example shows one possible flow.

Bob generates a task list. Review the task list and click Approve.

Bob creates the architecture and shows the planned project structure. Review the structure carefully, and continue only if you are satisfied with the implementation plan.

Step 4. Add the observability dashboard
In this step, you ask Bob to implement the observability dashboard by using the Application Observability custom mode.
Switch to the Application Observability mode.
Give Bob the following requirements so it can start implementing the Observability tab.
Design and implement a comprehensive Observability tab for the <application-name> using Python Dash, integrating with IBM Instana to provide visualization of both real-time and historical observability metrics. Additionally, just create an empty tab for Security/Resiliency, but do not start implementing anything related to Concert
Bob starts creating the project structure by following Python best practices. Click Approve.

Continue working with Bob as it generates the code.
Bob creates the code, documentation, initialization scripts, and unit tests.

Create the
.envfile by copying the.env.examplefile that Bob generated. Add the values forINSTANA_BASE_URLandINSTANA_API_TOKENso the application can connect to your Instana environment.Ask Bob to run the unit tests and start the application.
I populated .env with my Instana credentials. Please run the setup script that you created, perform unit testing, and run the app.
Bob runs the unit tests and confirms that all tests pass.

Bob starts the application successfully on localhost.

Go to
http://localhost:8050and explore the observability dashboard that Bob created. The dashboard shows the health of the application and displays real‑time and historical data for service performance, call patterns, error behavior, latency trends, and overall service health. It also includes comparison charts, correlation views, and detailed service summaries. This helps you understand how the application is performing and identify potential issues early.
Click the Security & Resiliency tab. Bob has created a placeholder for the Concert implementation, which you will complete in the next step.

Confirm that the application is running correctly. Ask Bob to stop the application so you can continue to the next step.
The application is working well. Please stop it.
Step 5. Add the application resiliency and security dashboard
In this step, you ask Bob to implement the resiliency and security dashboard by using the Automate Resilience custom mode.
- Switch to the Automate Resilience mode.
Give Bob the following requirements so it can start implementing the Resiliency and Security tab.
Add security insights and certificate details for the <application-name> in the Resiliency and Security tab. The tab should fetch and visualize security-related data from Concert. Add a placeholder for the Concert API keys in .env.example file.
Continue the implementation with Bob.
Bob updates the code in the Security tab with the actual IBM Concert integration instead of the placeholder.

Bob updates the code, documentation, and unit tests. Copy the Concert configuration from
.env.exampleinto your.envfile, and add your Concert credentials.Ask Bob to run the unit tests and start the updated application.
I populated .env with my Concert credentials. Please perform unit testing for Concert, and run the updated app for both integrations.
Bob runs the unit tests and starts the application.

Go to
http://localhost:8050, open the Security & Resiliency tab, and confirm that Bob has completed the full IBM Concert integration. The dashboard shows the security posture of the application, including vulnerability insights, severity trends, prioritized risk scores, and certificate health. It also displays certificate validity and expiry timelines to help you maintain a secure and resilient application.
Summary and next steps
This tutorial shows how Bob custom modes help you build an application that connects to IBM Instana and IBM Concert. By using the Application Observability mode and the Automate Resilience mode, Bob understands how each service works and what the application requires.
Bob created the project structure, added the Instana integration, and built the full observability dashboard with minimal manual effort. Bob also added the Concert integration and created the security and resiliency dashboard in the same straightforward way.
Bob provides a summary of all the tasks it completed for you during this tutorial:

Next, you can explore how Bob helps create MCP tools and watsonx Orchestrate agents in the tutorial Using IBM Bob to build watsonx Orchestrate agents and MCP tools.
The content in this tutorial was developed as part of the Building Blocks initiative, sponsored by Jason Gartner, General Manager of IBM Build Engineering. Building Blocks are reusable, proven enterprise patterns that help teams speed up solution development. Instead of creating complex functions, teams can use these ready‑to‑use components from the beginning to reduce effort, lower risk, and increase delivery speed.
Acknowledgments
The authors Sunil Gajula and Ahmed Azraq thank Carlo Appugliese and Anthony Stevens for their guidance on reviewing and contributing to this tutorial.
This tutorial was produced as part of the IBM Open Innovation Community initiative: Agentic AI (AI for Developers and Ecosystem).