Monitoring Informix DB
You can comprehensively monitor IBM® Informix® DB with Instana. After you install the Instana host agent, you need to install the Instana OTel sensor SDK database. Then, you must run the Instana OTel SDK for databases on the host where your Informix DB is running. You can view the metrics that are related to Informix DB in the Instana UI after you configure the Informix DB sensor as outlined in the Configuring Informix DB section.
Supported information
Supported operating systems
The supported operating systems of the Informix DB sensor are consistent with host agents requirements, which can be checked in the supported operating systems section of each host agent, such as Supported operating systems for Unix.
Supported versions
Instana agent supports the following Informix DB versions:
- Informix DB 12.10 or later
Installing OTel SDK for Informix DB
To install OTel SDK for Informix DB, complete the following steps:
-
Download the
.tar
file from Releases. -
Extract the
.tar
file by using the following command:tar vxf otel-dc-rdb-X.Y.Z.tar
You can now see that the folder
otel-dc-rdb-X.Y.Z
is created. -
Go to
otel-dc-rdb-X.Y.Z
directory:cd otel-dc-rdb-X.Y.Z
- Go to the
config
directory:
cd config
- Go to the
-
Modify the
config-informix.yaml
file with the details of the Informix DB. For more information, see GitHub.The default configuration file is
config/config.yaml
. You can also use the environment variableDC_CONFIG
to specify the configuration file as follows:export DC_CONFIG=config/config-informix.yaml
-
Go back to the
otel-dc-rdb-X.Y.Z
directory, and then run the following command from the shell to run the Instana Otel SDK executable file for Informix DB:./bin/otel-dc-rdb
Configuring Informix DB
The Informix DB sensor supports both local and remote monitoring. Local monitoring occurs when the Instana OTel SDK for databases runs on the same host as the Informix DB. Remote monitoring occurs when the Instana OTel SDK for databases runs
on a host other than the one where the Informix DB is running. To obtain optimum performance from the Informix DB sensor, use local monitoring. For both the cases, add the following configuration in the agent configuration.yaml
file, and then start the agent.
# OpenTelemetry Collector
com.instana.plugin.opentelemetry:
enabled: true
grpc:
enabled: true # takes precedence over legacy settings above, defaults to true if "grpc:" is present
http:
enabled: true # allows to enable http endpoints, defaults to true if "http:" is present
Local monitoring
To configure local monitoring, complete the following steps:
-
Go to the
config
folder by using the following command:cd config
-
Modify the
config-informix.yaml
file with the details of the Informix DB. For more information, see GitHub.See the following sample configuration file:
db.system: informix #Keep as it is db.driver: com.informix.jdbc.IfxDriver #Keep as it is instances: - db.address: xxx.xxx.xxx.xxx #IP Address db.port: 9088 #Port on which DB is running db.serverName: ol_informix1410 db.username: Informix_User_Name ### Either use password with Base 64 encoding or use vault configuration. db.password: BASE64_Encoded_Password #db.password: # vault_secret.path: #path to the vault secret. Example: /kv/instana/informix # vault_secret.key: #Provide the VaultSecretKey name db.name: InformixDB db.path: /opt/IBM/Informix_Software_Bundle #OTel properties: otel.service.name: InformixDB #Keep as it is #Data collector properties: #Either use `poll.interval` or `custom.poll.interval` #poll.interval: 30 #All three category value is Mandatory if leveraging Custom Poll Rate custom.poll.interval: high: 300 #polling_value_in_sec medium: 45 #polling_value_in_sec low: 20 #polling_value_in_sec callback.interval: 20 #Keep as it is otel.backend.url: http://127.0.0.1:4317 #Point to the running agent #Custom Input custom.input: # Optional #Time Frame for which you want to get the expensive query. Default value 900 Sec db.sql.elapsed.timeframe: 900 # Values should be in Seconds db.sequential.scan.count: 0 db.sql.trace.enabled: false #Default is false. Make it true only if `SqlTrace` is enabled for the DB. ### Uncomment the below section in case you are using Vault to retrieve the password. # vault: # connection_url: #Vault Address URL # token: #Vault Token # #Use the pem file path in case you are using TLS/SSL connection for vault. # #path_to_pem_file: auth/web-cert.pem # kv_version: 2 #It is the vault version. Please crosscheck your configuration.
Note: When you need to provide the plaintext password, the value of the db.password must be a Base64 encoded text.The vault configuration details must be disabled in that case.The SDK also supports vault based authentication mechanism.When the password needs to be provided through the vault configurations,they must be added to the db.password field.
We provide the following vault configuration details to the db.password field :
- vault_secret.path: Specify the path of the vault secret in this field.
- vault_secret.key: Specify the vault based authentication key in this field.
Also, the "vault" key in the configuration must be enabled while using the Vault authentication mechanism. The following fields must also be enabled:
- connection_url: The URL of the Vault address
- token: The value of the Vault token
- path_to_pem_file: The path to the pem file in case the TLS/SSL connection is used for vault.
- kv_version: The version of the Vault
To learn more about configuring Vault, refer the official documentation here.
Remote monitoring
To run the SDK in a different system from that of the agent, add the following configuration to the backend.cfg
file in /instana-agent/etc/instana/com.instana.agent.main.config.Agent.cfg
.
#If your DC is in a different host from your Instana Agent
http.listen=*
In remote monitoring, the Instana OTel SDK runs on a different host than that of the Informix DB.
The sample configuration file for single database is as follows:
db.system: informix #Keep as it is
db.driver: com.informix.jdbc.IfxDriver #Keep as it is
instances:
- db.address: xxx.xxx.xxx.xxx #IP Address
db.port: 9088 #Port on which DB is running
db.serverName: ol_informix1410
db.username: Informix_User_Name
### Either use password with Base 64 encoding or use vault configuration.
db.password: BASE64_Encoded_Password
#db.password:
# vault_secret.path: #path to the vault secret. Example: /kv/instana/informix
# vault_secret.key: #Provide the VaultSecretKey name
db.name: InformixDB
db.path: /opt/IBM/Informix_Software_Bundle
#OTel properties:
otel.service.name: InformixDB #Keep as it is
#Data collector properties:
#Either use `poll.interval` or `custom.poll.interval`
#poll.interval: 30
#All three category value is Mandatory if leveraging Custom Poll Rate
custom.poll.interval:
high: 300 #polling_value_in_sec
medium: 45 #polling_value_in_sec
low: 20 #polling_value_in_sec
callback.interval: 20 #Keep as it is
otel.backend.url: http://<ip_of_host_having_instana_otel_sdk>:4317 #Point to the running agent
#Custom Input
custom.input: # Optional
#Time Frame for which you want to get the expensive query. Default value 900 Sec
db.sql.elapsed.timeframe: 900 # Values should be in Seconds
db.sequential.scan.count: 0
db.sql.trace.enabled: false #Default is false. Make it true only if `SqlTrace` is enabled for the DB.
### Uncomment the below section in case you are using Vault to retrieve the password.
# vault:
# connection_url: #Vault Address URL
# token: #Vault Token
# #Use the pem file path in case you are using TLS/SSL connection for vault.
# #path_to_pem_file: auth/web-cert.pem
# kv_version: 2 #It is the vault version. Please crosscheck your configuration.
The sample configuration file for multiple databases is as follows:
db.system: informix #Keep as it is
db.driver: com.informix.jdbc.IfxDriver #Keep as it is
instances:
- db.address: xxx.xxx.xxx.xxx #IP Address
db.port: 9088 #Port on which DB is running
db.serverName: ol_informix1410
db.username: Informix_User_Name
### Either use password with Base 64 encoding or use vault configuration.
db.password: BASE64_Encoded_Password
#db.password:
# vault_secret.path: #path to the vault secret. Example: /kv/instana/informix
# vault_secret.key: #Provide the VaultSecretKey name
db.name: InformixDB
db.path: /opt/IBM/Informix_Software_Bundle
#OTel properties:
otel.service.name: InformixDB #Keep as it is
#Data collector properties:
#Either use `poll.interval` or `custom.poll.interval`
#poll.interval: 30
#All three category value is Mandatory if leveraging Custom Poll Rate
custom.poll.interval:
high: 300 #polling_value_in_sec
medium: 45 #polling_value_in_sec
low: 20 #polling_value_in_sec
callback.interval: 20 #Keep as it is
otel.backend.url: http://127.0.0.1:4317 #Point to the running agent
#Custom Input
custom.input: # Optional
#Time Frame for which you want to get the expensive query. Default value 900 Sec
db.sql.elapsed.timeframe: 900 # Values should be in Seconds
db.sequential.scan.count: 0
- db.address: xxx.xxx.xxx.xxx #IP Address
db.port: 9088 #Port on which DB is running
db.serverName: ol_informix1410
db.username: Informix_User_Name
### Either use password with Base 64 encoding or use vault configuration.
db.password: BASE64_Encoded_Password
#db.password:
# vault_secret.path: #path to the vault secret. Example: /kv/instana/informix
# vault_secret.key: #Provide the VaultSecretKey name
db.name: InformixDB
db.path: /opt/IBM/Informix_Software_Bundle
#OTel properties:
otel.service.name: InformixDB #Keep as it is
#Data collector properties:
#Either use `poll.interval` or `custom.poll.interval`
#poll.interval: 30
#All three category value is Mandatory if leveraging Custom Poll Rate
custom.poll.interval:
high: 300 #polling_value_in_sec
medium: 45 #polling_value_in_sec
low: 20 #polling_value_in_sec
callback.interval: 20 #Keep as it is
otel.backend.url: http://127.0.0.1:4317 #Point to the running agent
#Custom Input
custom.input: # Optional
#Time Frame for which you want to get the expensive query. Default value 900 Sec
db.sql.elapsed.timeframe: 900 # Values should be in Seconds
db.sql.trace.enabled: false #Default is false. Make it true only if `SqlTrace` is enabled for the DB.
### Uncomment the below section in case you are using Vault to retrieve the password.
# vault:
# connection_url: #Vault Address URL
# token: #Vault Token
# #Use the pem file path in case you are using TLS/SSL connection for vault.
# #path_to_pem_file: auth/web-cert.pem
# kv_version: 2 #It is the vault version. Please crosscheck your configuration.
Viewing metrics
To view the metrics, complete the following steps:
-
From the navigation menu in the Instana UI, select Infrastructure.
-
Click a specific monitored host.
You can see a host dashboard with all the collected metrics and monitored processes.
The following metrics are available for each Informix DB sensor:
Metric | Description | Granularity |
---|---|---|
Instance Count | Number of Informix DB instances | As configured |
Active Instance Count | Number of Informix DB instances that are active | As configured |
Session Count | Number of Informix DB sessions | As configured |
Active Session Count | Number of Informix DB sessions that are active | As configured |
Transaction Count | Number of Informix DB transactions | As configured |
Transaction Latency Count | Transaction latency | As configured |
SQL Count | Number of queries that are executed | As configured |
SQL Per Second | Number of queries that are executed per second | As configured |
IO read Count | Number of IO reads | As configured |
IO write Count | Number of IO writes | As configured |
SQL Elapsed Time | Most time-consuming queries with their execution time | As configured |
Database Used | Name of the database | As configured |
Disk Writes | Number of disk writes | As configured |
Disk reads | Number of disk reads | As configured |
Scans | Number of sequential scans for every table | As configured |
Table Scans | Number of Informix DB sessions with the sequential scans | As configured |
Overflow - Lock | Number of times a thread attempted to acquire a lock when locks were not available | As configured |
Overflow - User | Number of times a user thread attempted to acquire a lock when locks were not available | As configured |
Overflow - Transaction | Number of times a thread attempted to allocate an entry in the transaction table when the entries in the shared-memory table were not available | As configured |
Memory Utilization | Amount of memory used | As configured |
Buffer Cache Ratio(Read) | The percentage of page reads for this buffer pool that were satisfied by a cached page image | As configured |
Buffer Cache Ratio(Write) | The percentage of page writes for this buffer pool that were satisfied by a cached page image | As configured |
LRU Writes | Number of Least Recently Used (LRU) writes performed | As configured |
Database Lock Waits | Number of threads waiting for a lock | As configured |
TableSpace | Information about available and used storage of the top 20 tables in the database | As configured |