cancel
Showing results for 
Search instead for 
Did you mean: 
antonvolov
Sisense Team Member
Sisense Team Member

Sisense Configuration Tips

What You’ll Learn

In this course you will learn how to:

  • Export Sisense configuration
  • Search for settings in the configuration
  • Change the configuration settings
  • Compare different configurations
  • Import configuration

 

Use Cases For Applying What You Will Learn 

The following are some scenarios where this content can be applied when working with Sisense configurations:

  • You see the operation in the logs hitting the timeout equaling 300000, but you are not sure if there is a setting for such a timeout in the configuration.
  • You are performing an upgrade and want to check if the upgrade affected some of your configurations.
  • You want to back up the configuration.
  • You want to compare the configurations of two different environments.

 

Prerequisites

  • Familiarity with Sisense UI
  • Basic knowledge of Linux
  • Basic knowledge of Kubernetes

 

Configuration Types In Sisense

Sisense configuration settings may be logically divided into a couple of main categories:

  • Fixed: Those that are ‘fixed’ for the current deployment like the ones you set during Sisense's installation.
  • Configurable: Those that can be changed using the Configuration UI or the SI Client commands, without having to reinstall or update the Sisense application.
  • Add-ons: Those that are not directly related to the core application, but apply to add-ons like plugins or connectors

 

In this article, we will focus on Configurable settings that can be accessed from the Admin tab > System Management > Configuration

 

antonvolov_0-1667317787242.png

 

 

To get access to the full configuration menu, click on the Sisense logo 5 times:

 

antonvolov_1-1667317786823.png

 

Services Responsible For Configuration Management

 

Two services in Sisense are responsible for configuration management:

  • Zookeeper stores the configuration settings.
  • Configuration is responsible for manipulating configuration parameters and providing the configuration data to other services using ConfigurationSDK.

 

Configurations are set when the configuration service starts. The service sets all of the base (shared) configurations under the base configurations path in Zookeeper. All other services copy their required configurations during boot time using the configuration manifest file each service has stored using the Sisense-configuration SDK.

 

Base Vs Specific Configuration

The base configuration is shared between services. For example, if you change the log level in the base configuration it will change for all the services.

antonvolov_2-1667317787250.png

 

Specific configuration settings for services affect those services only.

You should be mindful of the Base and specific configuration when setting configuration parameters using tools outside of the UI!

 

Hidden UI Configuration “File Explorer”

As we already learned, we cannot change the base configuration parameters for specific services using the standard UI configuration menu. But what if we want to change the log level just for the Galaxy service? The hidden UI configuration, “file explorer” will come in handy. It will display all available Zookeeper configuration parameters. To access the hidden configuration “file explorer” click on the General section header 5 times.

 

The menu will expand and then, you will be able to see the File Explorer sub-menu

 

Find the galaxy service folder in the file tree. From there you will be able to see the base configuration settings for galaxy services:

 

Please note, if you change the base configuration setting, it will reset the individual value.

 

Changing Configuration Settings

There are 4 ways to change configuration settings:

  1. From the UI regular menu Admin > System Management > Configuration
  2. From the UI hidden file explorer (see above)
  3. From inside the Zookeeper pod using zkCli.sh
  4. Using SI CLI commands

 

Using the UI and hidden file explorer is quite straightforward, so below is a review on how to use zkCli.sh and SI CLI commands. 

 

From Inside The Zookeeper Pod Using Zkcli.Sh

Exec into Zookeeper:

kubectl -n sisense exec -it $(kubectl -n sisense get po -l=app=zookeeper -o name) -- bash

Run zkCli.sh

You will see the prompt:

unnamed (38).png

help — to see the help with all commands

ls — to list configurations, Sisense configurations are located at 

ls /Sisense/S1/configuration/production/ 

get — to get the particular value for example

get /Sisense/S1/configuration/production/translation-service/SwitchOffSameGuids

unnamed (39).png

set — to set the particular value in the format, set the parameter value. For example, 

set /Sisense/S1/configuration/production/translation-service/SwitchOffSameGuids true

 

Using SI CLI commands

si configuration is responsible for manipulating the configuration settings:

get — to get the particular value in the format of

si configuration get -key category.entry -type key

set — to set the particular value in the format of

si configuration set -key category.entry -new-value 1412

 

Read more about SI commands in Sisense’s documentation site: Using Sisense CLI Commands.

 

Exporting Configuration Settings:

Say you see in the logs that the request is hitting the 300000 msec timeout threshold, but you don’t know where the timeout is set and if there is such a timeout setting at all. It would be great to search the entire configuration set for the value 300000 and see if anything comes out, but the UI doesn’t provide that functionality yet, since you can only search per service. Please note, that at this time you cannot search through all configuration settings via the comprehensive configuration menu nor in the file explorer.  

To perform a global search in all configuration settings, we can export the configurations and perform the search in the output file. Remember that configurations are stored in Zookeeper while the configuration service is responsible for interacting with the Zookeeper database. Therefore, we will use configuration commands to perform the export.

1. Run this command to get the Zookeeper service ClusterIP: kubectl get svc -A | grep zookeeper.

unnamed (40).png

2. Put the IP in this command (but don’t run it yet!).

node /usr/src/app/node_modules/@sisense/sisense-configuration/bin/sisense-conf export -p -c 10.43.198.82:2181

3. Then exec into the configuration pod.

kubectl -n sisense get po | grep configuration

kubectl exec -it -n sisense configuration-84777bdfd9-n2wn5 -- /bin/bash

4. Then run the above command (with the correct cluster IP). It will dump the output into sisenseConfiguration.json, then run exit.

5. Copy sisenseConfiguration.json out of the pod, to the host, so you could work with the file

kubectl  -n sisense cp configuration-84777bdfd9-n2wn5:/usr/src/app/sisenseConfiguration.json sisenseConfiguration.json

Or simply run this command from the host, which will do everything for you.

kubectl -n sisense exec -it $(kubectl -n sisense get po -l=app=configuration -o name) -- node /usr/src/app/node_modules/@sisense/sisense-configuration/bin/sisense-conf export -p -c sisense-zookeeper:2181 > sisenseConfiguration.json

It will put sisenseConfiguration.json into the folder you are running it from. Now you can search for the 300000 value in the entire configuration.

unnamed (41).png

To perform an extensive search, you can use your favorite editor like vim or nano to open the file or use the Linux command “less”.

 

Importing Configuration Settings

Copy sisenseConfiguration.json to the new environment and to the configuration pod. Then exec into the configuration pod on the new environment using the following command:

kubectl exec -it -n sisense configuration-84777bdfd9-n2wn5 -- /bin/bash

and run: node /usr/src/app/node_modules/@sisense/sisense-configuration/bin/sisense-conf import -p -c sisense-zookeeper:2181 -i sisenseConfiguration.json

 

Comparing Configurations Of Different Environments

Say you want to compare configurations of two different environments or compare configurations before and after the upgrade to make sure nothing has changed. Now it is easy to do! You can export configurations into files and compare files using diff or your favorite online text-comparing tool like https://text-compare.com/

 

Summary

I hope this article helps you perform searches in Sisense’s configuration, compare configurations and check if a configuration setting exists at all in Sisense.  Using this article, we hope to empower Sisense users and show that users are not limited by UI limitations when working with configurations.

Rate this article:
Comments
ashprukh
Sisense Team Member
Sisense Team Member

really great explanation of how to look specific configuration inside Zookeper

Version history
Last update:
‎02-16-2024 12:12 PM
Updated by:
Contributors