Share Sisense web application externally (Windows only)
Sisense dashboards can be shared easily within the same private network, but the Sisense web application is not configured to be publicly accessible by default. This page details the steps and best practices to make your Sisense instance accessible to anyone on the internet, so that dashboards can be shared with users outside of your organization and Sisense can be accessed by users not on the same local network as the Sisense server. * Note: These settings make your Sisense web application publicly accessible. Users will still need to authenticate and be shared on a dashboard to access Sisense content. Implementation Steps To access Sisense using the Sisense server's IP address (for example, "192.0.2.0"), confirm that the server has a static public IP address. Consult your IT professional, internet service provider (ISP), or hosting service for more details. To access Sisense using a subdomain/domain name (for example, "analytics.example.com"), update your DNS to point to the machine's IP. You must own and control the domain name you wish to use. Sisense does not manage or assist with domain names or their configuration. Open the inbound TCP port in your firewall. This port is 8081 by default but configurable in the installation process (https://docs.sisense.com/win/SisenseWin/installing-sisense.htm#CustomizingtheInstallation). Nominally, this can be controlled in Windows Firewall with Advanced Security, but many customers have superseding rules from their organization or hosting service. If Sisense is still not accessible over your port after opening it in Windows Firewall, confirm with your IT department whether firewall rules may be in place elsewhere. Implement a security layer using SSL to ensure that all network traffic between your Sisense server and client machines is encrypted. For steps to do so, see here: https://docs.sisense.com/win/SisenseWin/setting-up-ssl-for-sisense-windows.htm. After implementing SSL, ensure the port used (typically 443) is also open for inbound TCP connections. Once these settings are implemented, external users will be able to access Sisense by entering the Sisense DNS/IP address and port (for example, "192.0.2.0:8081" or "analytics.example.com:8081"). * Note: If you don't want users to have to enter a port (for example, "192.0.2.0" or "analytics.example"), use port 80 for http communication and 443 for https communication, as these ports will be hidden from the URL. Troubleshooting If a user is unable to connect remotely after the settings were applied, you can test the communication between the machines to understand the source of the connectivity failure by doing the following: Confirm the Sisense web application is running and accessible locally on the server Use the 'nslookup' command in the Windows Command Prompt (cmd.exe) to confirm your domain/subdomain points to the correct IP address for your Sisense server. For example, 'nslookup example.com'. Try pinging the machine's IP address in the command prompt. This will show if there is communication available between both machines. For example, 'ping 192.0.2.0'. If you are able to ping the machine, use the telnet command to ensure you are able to communicate through the required port. For example, 'telnet 192.0.2.0 8081' Further troubleshooting or review may require your IT team's assistance. Further Reading More information is available here: https://docs.sisense.com/win/SisenseWin/setting-up-your-production-environment.htm. Helpful general information about web applications and security is available from Mozilla: https://developer.mozilla.org/en-US/Apps https://developer.mozilla.org/en-US/docs/Web/Security1.3KViews0likes0CommentsChanging the ‘Grand Total’ label on pivot table
*****Windows Only**** When having a pivot table which contains more than one value and present the grand total for each of the values, the total row is called “Grand Total” In some cases you can be faced with users’ requirement for changing the ‘Grand Total’ label to a more meaningful title (name of main category which summarizes some sub-category figures such as ‘World Wide’, ‘Sales Department’ which summarizes average wins per sales person). To apply it please follow the steps below: Implementation steps Go to the widget menu on its edit mode and click on Edit Script Copy the script attached at the end of this post to the script tab. Change the marked text to your desired one. Save the script. Close the script tab. Refresh the widget tab in its edit mode. You should already see the change here. Click on the Apply button. Enjoy your new title Another option is to have the title of one of the rows as the total label (need to change the marked number according the row location in the table-1): The same procedure as described above fits this option as well. ****For Linux**** You may use this script for Pivot2 on Linux, widget.transformPivot( {type: ['grandtotal']}, function (metadata, cell) { if(cell.content == 'The title to be changed') { cell.content = 'The new title'; }}); It is important to note, the provided solution is not an official feature and is not supported or goes through the proper product life cycle. This will require maintenance and proper testing on your side, we also highly recommend running on a staging environment before upgrading or implementing it on production environments.4KViews0likes3CommentsResolving Issues with Updating EC2EC Passwords in Elasticube Connections
This article addresses the issue of updating EC2EC (Elasticube to Elasticube) passwords in the context of employee off-boarding or password changes. Specifically, it covers the scenario where tables do not appear in the source cube after updating the password, preventing the completion of the update.401Views0likes0CommentsTroubleshooting "BBP Error 1551" in Sisense ElastiCube Builds
Troubleshooting "BBP Error 1551" in Sisense ElastiCube Builds Summary This article provides a comprehensive guide to troubleshooting the "BBP error 1551" that occurs during the build process of ElastiCubes in the Sisense Windows environment. The error typically indicates a discrepancy between the logical schema and the actual result of the ElastiCube, leading to build failures. Main Content Step-by-Step Instructions to Resolve the Issue Identify the Error: The BBP error '1551' indicates a mismatch between the logical schema and the actual data/indexes in the ElastiCube. This is done to prevent inconsistencies. Initial Troubleshooting Steps: Run Build Schema Changes: After creating a Custom Table, run Build Schema Changes. Add the Relationship and run Build Schema Changes again. Run Full Build: Perform a Full Build (Replace All) to ensure all data and indexes are correctly aligned. Check Logs for Detailed Error Information: Build Process Logs: %ProgramData%\SiSense\PrismServer\ElastiCubeProcessLogs\ ElastiCube Server Logs: %ProgramData%\Sisense\PrismServer\PrismServerLogs\ Review these logs to identify any specific issues or patterns that may be causing the build failure. Frequency and Environment Check: Determine how often the scheduled build runs and how frequently it fails with this error. If possible, duplicate the ElastiCube or create a new one for testing purposes and set its schedule to be more frequent. Observe if the issue's frequency increases. Accumulative Build Check: If the error occurs during an accumulative build, consider running a Full Build (Replace All) to reset the schema and data alignment. Troubleshooting Tips and Alternative Solutions No Recent Changes: If no changes have been made to the ElastiCube and the error persists, it may be necessary to investigate any underlying system or environmental changes that could affect the build process. Monitor and Report: Continuously monitor the build process after implementing the above steps. If the issue reoccurs, provide detailed logs and error messages to the support team for further analysis. Check out this related content: Academy Course Sisense Documentation314Views0likes0CommentsLeveraging Usage Analytics for maintaining a healthy environment
Analytical Need In this article, we can find a suggested approach on how to better maintain our Sisense environment. The current tools and methodologies take us to an encumbering and challenging work. By creating a dedicated dashboard to show our environment status and add actionable widgets we can make such work much easier. The final output of this article is a dashboard which will present our environment status (e.g. unused dashboards/ElastiCubes/Users and low/high usage components). + actionable drill-down dashboards (powered by BloX) which make these dashboards much more actionable. Solution Effort estimation: ~1 hour Technical Skills required: Low Usage Analytics Usage Analytics is part of this solution. Extending the default number of days stored (default is to keep only 30 days of usage) is optional but will provide a clearer status of your environment. Enable Sisense Usage Analytics - Follow this article to enable the Usage Analytics. https://docs.sisense.com/main/SisenseLinux/enabling-usage-analytics.htm Optional: Extending the number of days stored In the Sisense configuration manager, under the "Services" tab, locate "Usage service" and update the usage.csvRotateDays to the desired period. https://docs.sisense.com/main/SisenseLinux/configuration-manager-sisense-documentation.htm *Warning! Increasing the number of days to a higher number than 30 days might affect server performance. Mainly during the usage Analytics cube build. It is strongly recommended to test the cube stability, capacity and performance before scheduling it to a frequent build. Get unused Dashboards/ElastiCubes/Users data The Usage Analytics presents information on Sisense objects that had at list one usage. In case we had no usage by a user it won't appear in the Usage Analytics data. This is the reason why we need to call some metadata API's to fetch the missing information. The process per each API call mentioned below is as follows: Make sure you are logged in as an Admin user Copy the API URL, change if required to the server location, and Paste the URL in the HTML address/Postman/etc. (It includes the required fields for this solution) Convert the JSON to a CSV format. I Recommend this online converter: https://toolslick.com/conversion/data/json-to-csv Download the CSV output and rename Users API: http://localhost:8081/api/v1/users?fields=_id%2CuserName%2Cemail%2Ccreated%2ClastLogin Dashboards API Call (for a user which has access to all dashboards) http://localhost:8081/api/v1/dashboards?fields=oid%2Ctitle%2Ccreated%2ClastOpened%2ClastUpdated%2Cdatasource.title%2ClastPublish%2CparentFolder%2Cowner Or Dashboards API Call (Admin) https://localhost:8081/api/v1/dashboards/admin?dashboardType=owner&asObject=false&fields=title%2Ccreated%2ClastOpened%2ClastUpdated%2ClastPublish%2Cdatasource.title%2CparentFolder%2Cowner%2CwidgetCount%2ClastRepublished ElastiCubes API: http://localhost:8081/api/v1/elasticubes/getElasticubes Usage Analytics Re-Design to support Unused objects data The Usage Analytics ElastiCube is not a standard cube and the internal queries are being rewritten on each build. The only way to add additional data is by adding new entities/dimensions. This is the reason why the cube structure is not a classic star schema. Steps to adjust the Usage Analytics ElastiCube for the suggested solution: Download the Usage Analytics cube file, import and replace the existing Usage Analytics model Ecube file Smodel file Adjust the file data sources to the CSV sources created in the previous step In case CSV table names were changed, adjust the custom sql based tables (DimDashboards Extended, DimElasticubes, and Dim Users Extended) Build! Healthy Environment Dashboards Check that the OOTB Usage Analytics dashboards work properly. They shouldn't be affected by the adjustments we've made. Import attached dashboards Dashboard 1 Drill1 Drill2 Enjoy!1.5KViews1like1CommentHealth and Maintenance of Sisense Environment
Overview: Keeping your Sisense environment healthy and up to date is essential to a successful Sisense instance. This article contains general information about Sisense deployment and maintenance. Please reference the linked articles for additional information. Topics: Clean installation Upgrade Migration Clean installation When first deploying Sisense it is important to review the Installation guide and ensure any prerequisite programs are installed. Keep in mind that Sisense depends on particular Sisense roles and features which are discussed below. Technical Requirements: .NET Framework 4.6.1 (as of Sisense Version 7.3) Visual C++ Redistributable Packages Java Runtime Environment The software components above along with Windows roles and features responsible for running IIS will be installed automatically within Sisense installation. Installing Sisense Minimum Requirements For organizations that do not allow their server to access the internet can use the offline installer process. Installing Sisense Offline For additional information about keeping your Sisense environment clean and performing well, please refer to this article: Performance Issues Troubleshooting Upgrade Each version includes new features and enhancements as well as other improvements. Please read our release notes and check if there are any breaking changes in the version you are upgrading to. We strongly recommend upgrading a staging environment first so you can know how the upgrade will affect your users and your configuration before upgrading your production environment. Make sure to back up your current instance before the upgrade. Feel free to contact your Customer Success Manager (CSM) or our Sisense Support team if any additional consultation is needed. Upgrading Sisense Backing up Sisense Release Notes Migration Occasionally you come across a situation when you need to migrate Sisense to a different server (for example moving from Windows Server 2012 to Windows Server 2016). In general, Sisense consists of 2 parts: Back-End: The Back-end includes your ElastiCubes - where all of the data to analyze is stored Front-End: Front-end that includes dashboards and system configuration. Each each component can be migrated in several ways. For more information please reference the following article and follow the instructions specific to your Sisense version. Please contact your CSM if Sisense migration will make you go over limit on server licenses. Migrating Sisense1.2KViews0likes0CommentsGet ElastiCube from Process ID
Question I would like to be able to track memory consumption of my ElastiCubes, but I can't find an easy way to link the process ID of my ElastiCube to the cube name. Answer If you open the Task Manager, go to the Details tab and right-click on one of the columns then click on the Select columns option. Find the Command line option. Still on the Details tab, if you search for ElastiCube.exe processes, you can see the ElastiCube name as one of the process arguments (dbname) You can use the following PowerShell (make sure to run as Admin) script to extract all of these into a CSV file: $process = "elasticube.exe" Get-CimInstance Win32_Process -Filter "name = '$process'" | Select CommandLine | Export-Csv -Path "c:\temp\reports.csv"1.1KViews0likes0CommentsSisense Configuration Tips
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 To get access to the full configuration menu, click on the Sisense logo 5 times: 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. 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: From the UI regular menu Admin > System Management > Configuration From the UI hidden file explorer (see above) From inside the Zookeeper pod using zkCli.sh 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: 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 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. 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. 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.2.3KViews3likes1Comment