SlideShare a Scribd company logo
1 of 55
Download to read offline
© 2019 SPLUNK INC.
Crash Course in Dashboard Studio
Lizzy Li, Sr Manager, Dashboards, Splunk
© 2023 SPLUNK INC.
A crash course
in Dashboard
Studio
May 2023
© 2023 SPLUNK INC.
Lizzy Li
Principal Product Manager
Splunk Dashboards & Analytics Workspace
© 2019 SPLUNK INC.
Agenda
Note: You will see
features that are new
as of Splunk Cloud
Platform 9.0.2303.
1) Dashboard Studio: 10,000 ft
view
○ Classic (SimpleXML) & Dashboard
Studio comparison
2) New paradigms in
Dashboard Studio
○ How to read the dashboard
definition
○ How to achieve common Classic
use cases in Dashboard Studio
3) Demo
4) Roadmap
5) Q&A
Put your hand up if…
● You've heard of Dashboard Studio
Put your hand up if…
● You've heard of Dashboard Studio
● You've tried Dashboard Studio (just once counts!)
Put your hand up if…
● You've heard of Dashboard Studio
● You've tried Dashboard Studio (just once counts!)
● You've built multiple dashboards in Dashboard Studio
Put your hand up if…
● You've heard of Dashboard Studio
● You've tried Dashboard Studio (just once counts!)
● You've built multiple dashboards in Dashboard Studio
● You like building with Dashboard Studio
Put your hand up if…
● There are features you need that are missing in Dashboard
Studio
Put your hand up if…
● There are features you need that are missing in Dashboard
Studio
● You just prefer Classic (SimpleXML) dashboards
Dashboard
Studio is the
next generation
of Splunk
dashboards
Designed for intuitive
point-and-click building,
while maintaining
flexibility for advanced
use cases.
Why is Splunk building a new dashboard
framework?
We listened to customers and heard the following about Classic dashboards:
● Hard to get something polished enough for execs or high visibility monitors
● Hard for less technical users to do much beyond the basics
● Easy to get started, but hard to master optimizing dashboards or building
more advanced use cases
© 2019 SPLUNK INC.
Key features Classic
Dashboard
Studio
Data sources
ad-hoc, base and post-process, saved
searches
✅ ✅
Standard charts
axes charts, maps, single values
✅ ✅
3rd party visualizations ✅ ❌
Inputs ✅ ✅
Interactivity
link to other pages, set and pass tokens
✅ ✅
Tokenization
eval, set, condition; search-based tokens
✅ ✅
logic can be included
in SPL
Sharing
scheduled email export, export to CSV
🚧
scheduled export,
limited csv export
🚧
png/pdf export
csv export
Classic
vs.
Studio
As of Splunk Cloud
9.0.2303
See release notes
New
paradigms
in
Dashboard
Studio
First we need to understand how the dashboard
definition is structured
Every dashboard has:
● title
● description
● dataSources
● visualizations
● defaults
● inputs
● layout
First we need to understand how the dashboard
definition is structured
Every dashboard has:
● title
● description
● dataSources
● visualizations
● defaults
● inputs
● layout
dataSources
● Data sources include ad-hoc
searches, base and chain
searches, and saved searches
○ Chain searches are easier to configure
now too!
"ds_fWuYtYEz": {
"type": "ds.search",
"options": {
"query": "index=tutorial
action=purchase status=200 | stats
count(productName) as "Quantity"
values(price) as Price by productName,
clientip, categoryId | eval
Revenue=Quantity*Price"
},
"name": "Purchases"
● Data sources include ad-hoc
searches, base and chain
searches, and saved searches
○ Chain searches are easier to configure
now too!
● Data sources are now
independent from visualizations
and inputs
○ This means that data sources can be
referenced by multiple visualizations
and inputs
dataSources
"ds_fWuYtYEz": {
"type": "ds.search",
"options": {
"query": "index=tutorial
action=purchase status=200 | stats
count(productName) as "Quantity"
values(price) as Price by productName,
clientip, categoryId | eval
Revenue=Quantity*Price"
},
"name": "Purchases"
dataSources
● Data sources include ad-hoc
searches, base and chain
searches, and saved searches
○ Chain searches are easier to configure
now too!
● Data sources are now
independent from visualizations
and inputs
○ This means that data sources can be
referenced by multiple visualizations
and inputs
● Data sources are identified by a
unique identifier (e.g.
"ds_fWuYtYEz": {
"type": "ds.search",
"options": {
"query": "index=tutorial
action=purchase status=200 | stats
count(productName) as "Quantity"
values(price) as Price by productName,
clientip, categoryId | eval
Revenue=Quantity*Price"
},
"name": "Purchases"
visualizations
● Visualizations reference data
sources via data source ID
○ Secondary data sources may be added
for annotations or field summaries for
Events Viewer viz
"viz_LcdCtHCD": {
"type": "splunk.singlevalue",
"dataSources": {
"primary": "ds_lRYLqjC2"
},
"title": "Total unique customers",
"options": {
"majorValue": "> sparklineValues | lastPoint()",
"trendValue": "> sparklineValues | delta(-2)",
"sparklineValues": "> primary |
seriesByName('customers')"
}
}
visualizations
● Visualizations reference data
sources via data source ID
○ Secondary data sources may be added
for annotations or field summaries for
Events Viewer viz
● Visualizations allow for more
flexibility in what from the data
source is displayed
○ sparklineValues
○ majorValue
○ trendValue
"viz_LcdCtHCD": {
"type": "splunk.singlevalue",
"dataSources": {
"primary": "ds_lRYLqjC2"
},
"title": "Total unique customers",
"options": {
"majorValue": "> sparklineValues | lastPoint()",
"trendValue": "> sparklineValues | delta(-2)",
"sparklineValues": "> primary |
seriesByName('customers')"
}
}
defaults
● Set options once to apply to
multiple data sources or
visualizations
○ Data source time range
○ Visualization options
"defaults": {
"dataSources": {
"ds.search": {
"options": {
"queryParameters": {
"latest": "0",
"earliest": ""
}
}
}
},
"visualizations":{
"global":{
"showProgressBar": true
},
"splunk.singlevalue":{
"backgroundColor":"#ffffff"
}
},
"tokens": {
"default": {
"customer": {
"value": "*"
}
}
}
defaults
● Set options once to apply to
multiple data sources or
visualizations
○ Data source time range
○ Visualization options
● Defaults can be set at a global or
type-specific level
○ Global: showProgressBar
○ Single values: backgroundColor
"defaults": {
"dataSources": {
"ds.search": {
"options": {
"queryParameters": {
"latest": "0",
"earliest": ""
}
}
}
},
"visualizations":{
"global":{
"showProgressBar": true
},
"splunk.singlevalue":{
"backgroundColor":"#ffffff"
}
},
"tokens": {
"default": {
"customer": {
"value": "*"
}
}
}
defaults
● Set options once to apply to
multiple data sources or
visualizations
○ Data source time range
○ Visualization options
● Defaults can be set at a global or
type-specific level
○ Global: showProgressBar
○ Single values: backgroundColor
● Specify default token values
○ Except input defaults, which are set in
the inputs section
"defaults": {
"dataSources": {
"ds.search": {
"options": {
"queryParameters": {
"latest": "0",
"earliest": ""
}
}
}
},
"visualizations":{
"global":{
"showProgressBar": true
},
"splunk.singlevalue":{
"backgroundColor":"#ffffff"
}
},
"tokens": {
"default": {
"customer": {
"value": "*"
}
}
}
New paradigms in Dashboard Studio
1. Data sources are independent from inputs and visualizations, and you
can specify what from the data source is displayed in the visualization.
This means you can possibly use fewer searches that return more fields, for
reuse by multiple visualizations. This can help with performance and
resource utilization.
New paradigms in Dashboard Studio
1. Data sources are independent from inputs and visualizations, and you
can specify what from the data source is displayed in the visualization.
This means you can possibly use fewer searches that return more fields, for
reuse by multiple visualizations. This can help with performance and
resource utilization.
2. You can reference search results and metadata directly as tokens.
This means you can move tokenization logic into a search, and set search
results as token values.
© 2021 SPLUNK INC.
© 2023 SPLUNK INC.
How to achieve common Classic
use cases in Dashboard Studio
© 2021 SPLUNK INC.
© 2023 SPLUNK INC.
Use case 1: token manipulation
Classic (Simple XML) example
Let's consider how we might set search results as tokens in a Classic
dashboard:
<search>
<query>...</query>
<done>
<set token="user_error">result.UserError</set>
<set token="server_error">result.ServerError</set>
</done>
</search>
This requires manual source code editing and setting multiple token values.
Dashboard Studio example
In Dashboard Studio, you just need to select
"Use search results or job status as
tokens"
Then reference results using the format
$datasource name:result.<fieldname>$
Examples:
● $Interaction status:UserError$
● $Interaction status:ServerError$
No manual source code editing required, no
additional token logic to define.
© 2021 SPLUNK INC.
© 2023 SPLUNK INC.
Use case 2: show/hide panels
Let's consider how we might show/hide panels in a Classic dashboard:
● Specify logic to set and unset a token
● Add a "depends" to the desired visualization to display when the token set
and hide when unset
This requires manual source code editing and possibly adding unset logic to
multiple places in the dashboard.
Classic (Simple XML) example
Dashboard Studio example
In Dashboard Studio, you just need to select
"When data is unavailable, hide element"
● For many use cases, this is likely all you
need
● For more complex use cases, you can set
up your search so that it does not return
results when you want to hide the
element
No manual source code editing required, no
additional token logic to define.
© 2021 SPLUNK INC.
© 2023 SPLUNK INC.
Use case 3: visual design
Let's consider how we might apply visual designs in a Classic dashboard:
● Custom JS
● Custom CSS
● Custom HTML panels
This requires higher technical skills, bundling .js and .css with your app, and
manual source code editing.
Classic (Simple XML) example
Dashboard Studio example
In Dashboard Studio, you just need
to
● Point-and-click support to edit
layout, size, and layering of
objects
● Add images via upload or URL
reference
○ Use images to add corporate logos
○ Use images to layer metrics on top
● GUI for changing colors, adding
markdown, and other styling
Demo
What's next for Dashboard Studio?
Advanced
interactivity +
layouts
Show/hide panels,
tabbed dashboards,
token logic builder
Ease of use
improvements
UI for all key options
and workflows,
templates,
grouping + layering
objects
More sharing
options
Export to .json, .html,
easier image export,
scheduled email
export
Classic to
Studio
conversion
Automated
conversion, post
conversion report
Subject to change
© 2023 SPLUNK INC.
Q&A
© 2019 SPLUNK INC.
Break
© 2019 SPLUNK INC.
Splunk REST Lookups Upload
Becky Burwell, Senior Production Engineer, Yahoo
About CSV lookups
● Splunk provides handy CSV lookups.
https://docs.splunk.com/Documentation/Splunk/latest/Knowledge/ConfigureCSVlookups
CSV lookups match field values from your events to field values in the static table represented by a CSV file. Then they output
corresponding field values from that table to your events
Using Lookup in Splunk
How do I add lookups to Splunk?
1. Run a Splunk search that has the data and use outputlookup
index=animal_data | outputlookup ug_demo.csv
2. Use Settings -> Lookups -> Add New
How do I add lookups to Splunk? (continued)
3. Use the Splunkbase lookup editor https://splunkbase.splunk.com/app/1724
App provides endpoint to upload lookups that is search head cluster aware. You can upload
once and store on all heads in your search head cluster!
But how do we upload CSV via the command line?
● Splunk community user mthcht created a Python 3 script to upload a directory
of lookup files to Splunk
https://github.com/mthcht/lookup-editor_scripts
● The upload script enumerates all files in a given directory
● For each file
○ Opens and reads the lookup file into memory
○ Sends a POST request to the Splunk server/management port using the endpoint
/services/data/lookup_edit/lookup_contents with the contents of the file in
json format
My modifications
● https://github.com/beckyburwell/splunk_rest_upload_lookups
splunk_rest_upload_lookups.py splunk_head_url lookup_file splunk_app
● Copied mthcht uploads script as follows
○ Modified it to upload a single lookup file, not a directory of lookups
○ Let the user pass in the Splunk host URL and long with management port
○ Pass in the name of one lookup file
○ Pass in the name of the Splunk app to upload to
○ Changed the hard-coding of the Splunk username and password to prompt the user
Script demo
$ cat ~/ug_demo.csv
animal,color
"cat","tabby"
"dog","black"
How to make more useful?
● Use in script:
○ Script prompts for Splunk admin and password
○ Change that to a secure way of obtaining the credentials; don’t prompt for username/password
Notes on Permissions
● In order to use the script, the user needs to be able to store knowledge
objects into the app
● By default, the search app is only writable to power and admin
● Users should upload to an app they have access to
Summary of Requirements
● Access to Python 3
● Splunk Lookup Editor installed on Splunk search heads
● User access to the app you want to store the lookups in
Acknowledgements and Thanks
● Thanks to community user mthcht
● Thanks to my colleague Paras Jain, who tested my script and gave me
feedback
© 2019 SPLUNK INC.
Questions/Discussion
© 2019 SPLUNK INC.
Thank You!
© 2019 SPLUNK INC.
Title and Content
Phasellus et nisi lacus, mauris ultricies arcu faucibus orci sit
Donec fermentum sollicitudin neque, nec viverra neque lacinia eu
Donec mattis tortor vitae egestas pulvinar
• Vivamus eu dignissim turpis
Nunc eu cursus est, at ullamcorper dui
Optional subtitle

More Related Content

What's hot

Giam sat-switch-bằng-phần-mềm-prtg
Giam sat-switch-bằng-phần-mềm-prtgGiam sat-switch-bằng-phần-mềm-prtg
Giam sat-switch-bằng-phần-mềm-prtg
laonap166
 
10 step-to-configure-cisco-call-manager-express
10 step-to-configure-cisco-call-manager-express10 step-to-configure-cisco-call-manager-express
10 step-to-configure-cisco-call-manager-express
Nguyen Thanh
 
Layer-3 VPN
Layer-3 VPNLayer-3 VPN
Layer-3 VPN
rosmida
 

What's hot (20)

SOC Foundation
SOC FoundationSOC Foundation
SOC Foundation
 
Openstack pour les nuls
Openstack pour les nulsOpenstack pour les nuls
Openstack pour les nuls
 
Fortinet
FortinetFortinet
Fortinet
 
Giam sat-switch-bằng-phần-mềm-prtg
Giam sat-switch-bằng-phần-mềm-prtgGiam sat-switch-bằng-phần-mềm-prtg
Giam sat-switch-bằng-phần-mềm-prtg
 
Next Generation Nexus 9000 Architecture
Next Generation Nexus 9000 ArchitectureNext Generation Nexus 9000 Architecture
Next Generation Nexus 9000 Architecture
 
CCNA v6.0 ITN - Chapter 06
CCNA v6.0 ITN - Chapter 06CCNA v6.0 ITN - Chapter 06
CCNA v6.0 ITN - Chapter 06
 
Nokia L3 VPN Configuration Guide
Nokia L3 VPN Configuration GuideNokia L3 VPN Configuration Guide
Nokia L3 VPN Configuration Guide
 
10 step-to-configure-cisco-call-manager-express
10 step-to-configure-cisco-call-manager-express10 step-to-configure-cisco-call-manager-express
10 step-to-configure-cisco-call-manager-express
 
Full hướng dẫn cấu hình gns3 1.1
Full hướng dẫn cấu hình gns3 1.1Full hướng dẫn cấu hình gns3 1.1
Full hướng dẫn cấu hình gns3 1.1
 
MPLS-TE
MPLS-TEMPLS-TE
MPLS-TE
 
About IPv6
About IPv6About IPv6
About IPv6
 
CCNP ROUTE V7 CH7
CCNP ROUTE V7 CH7CCNP ROUTE V7 CH7
CCNP ROUTE V7 CH7
 
MPLS WC 2014 Segment Routing TI-LFA Fast ReRoute
MPLS WC 2014  Segment Routing TI-LFA Fast ReRouteMPLS WC 2014  Segment Routing TI-LFA Fast ReRoute
MPLS WC 2014 Segment Routing TI-LFA Fast ReRoute
 
PhNOG Report APRICOT 2023
PhNOG Report APRICOT 2023PhNOG Report APRICOT 2023
PhNOG Report APRICOT 2023
 
Kịch bản demo phát hiện xâm nhập sử dụng snort ids
Kịch bản demo phát hiện xâm nhập sử dụng snort idsKịch bản demo phát hiện xâm nhập sử dụng snort ids
Kịch bản demo phát hiện xâm nhập sử dụng snort ids
 
TechWiseTV Workshop: Cisco Catalyst 9100 Access Points for Wi-Fi 6
TechWiseTV Workshop: Cisco Catalyst 9100 Access Points for Wi-Fi 6TechWiseTV Workshop: Cisco Catalyst 9100 Access Points for Wi-Fi 6
TechWiseTV Workshop: Cisco Catalyst 9100 Access Points for Wi-Fi 6
 
Router commands
Router commandsRouter commands
Router commands
 
Layer-3 VPN
Layer-3 VPNLayer-3 VPN
Layer-3 VPN
 
Cisco IOS XRv Router Installation and Configuration Guide
Cisco IOS XRv Router Installation and Configuration GuideCisco IOS XRv Router Installation and Configuration Guide
Cisco IOS XRv Router Installation and Configuration Guide
 
COMANDOS CISCO HUAWEI JUNIPER
COMANDOS CISCO HUAWEI JUNIPERCOMANDOS CISCO HUAWEI JUNIPER
COMANDOS CISCO HUAWEI JUNIPER
 

Similar to SFBA Splunk Usergroup meeting May 3, 2023

Similar to SFBA Splunk Usergroup meeting May 3, 2023 (20)

Building an analytics workflow using Apache Airflow
Building an analytics workflow using Apache AirflowBuilding an analytics workflow using Apache Airflow
Building an analytics workflow using Apache Airflow
 
Designing salesforce solutions for reuse - Josh Dennis
Designing salesforce solutions for reuse - Josh DennisDesigning salesforce solutions for reuse - Josh Dennis
Designing salesforce solutions for reuse - Josh Dennis
 
Webinar: AngularJS and the WordPress REST API
Webinar: AngularJS and the WordPress REST APIWebinar: AngularJS and the WordPress REST API
Webinar: AngularJS and the WordPress REST API
 
Webinar: AngularJS and the WordPress REST API
Webinar: AngularJS and the WordPress REST APIWebinar: AngularJS and the WordPress REST API
Webinar: AngularJS and the WordPress REST API
 
Develop an App with the Odoo Framework
Develop an App with the Odoo FrameworkDevelop an App with the Odoo Framework
Develop an App with the Odoo Framework
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to Swagger
 
Supercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuerySupercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuery
 
Build a Big Data solution using DB2 for z/OS
Build a Big Data solution using DB2 for z/OSBuild a Big Data solution using DB2 for z/OS
Build a Big Data solution using DB2 for z/OS
 
Spark Machine Learning: Adding Your Own Algorithms and Tools with Holden Kara...
Spark Machine Learning: Adding Your Own Algorithms and Tools with Holden Kara...Spark Machine Learning: Adding Your Own Algorithms and Tools with Holden Kara...
Spark Machine Learning: Adding Your Own Algorithms and Tools with Holden Kara...
 
Couchbas for dummies
Couchbas for dummiesCouchbas for dummies
Couchbas for dummies
 
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling
 
Learning & using new technology
Learning & using new technologyLearning & using new technology
Learning & using new technology
 
Learning & using new technology
Learning & using new technologyLearning & using new technology
Learning & using new technology
 
Design Summit - UI Roadmap - Dan Clarizio, Martin Povolny
Design Summit - UI Roadmap - Dan Clarizio, Martin PovolnyDesign Summit - UI Roadmap - Dan Clarizio, Martin Povolny
Design Summit - UI Roadmap - Dan Clarizio, Martin Povolny
 
Image archive, analysis & report generation with Google Cloud
Image archive, analysis & report generation with Google CloudImage archive, analysis & report generation with Google Cloud
Image archive, analysis & report generation with Google Cloud
 
Extending spark ML for custom models now with python!
Extending spark ML for custom models  now with python!Extending spark ML for custom models  now with python!
Extending spark ML for custom models now with python!
 
Randomizing Data With SQL Server
Randomizing Data With SQL ServerRandomizing Data With SQL Server
Randomizing Data With SQL Server
 
UCM Tips Nagaraj's knowledge planet
UCM Tips Nagaraj's knowledge planetUCM Tips Nagaraj's knowledge planet
UCM Tips Nagaraj's knowledge planet
 
2014 11 20 Drupal 7 -> 8 test migratie
2014 11 20 Drupal 7 -> 8 test migratie2014 11 20 Drupal 7 -> 8 test migratie
2014 11 20 Drupal 7 -> 8 test migratie
 
SenchaCon 2016: Upgrading an Ext JS 4.x Application to Ext JS 6.x - Mark Linc...
SenchaCon 2016: Upgrading an Ext JS 4.x Application to Ext JS 6.x - Mark Linc...SenchaCon 2016: Upgrading an Ext JS 4.x Application to Ext JS 6.x - Mark Linc...
SenchaCon 2016: Upgrading an Ext JS 4.x Application to Ext JS 6.x - Mark Linc...
 

More from Becky Burwell

More from Becky Burwell (13)

SFBA Splunk Usergroup meeting March 13, 2024
SFBA Splunk Usergroup meeting March 13, 2024SFBA Splunk Usergroup meeting March 13, 2024
SFBA Splunk Usergroup meeting March 13, 2024
 
SFBA Splunk Usergroup meeting December 14, 2023
SFBA Splunk Usergroup meeting December 14, 2023SFBA Splunk Usergroup meeting December 14, 2023
SFBA Splunk Usergroup meeting December 14, 2023
 
SFBA_SUG_2023-08-02.pdf
SFBA_SUG_2023-08-02.pdfSFBA_SUG_2023-08-02.pdf
SFBA_SUG_2023-08-02.pdf
 
SFBA Splunk User Group Meeting February 2023
SFBA Splunk User Group Meeting February 2023SFBA Splunk User Group Meeting February 2023
SFBA Splunk User Group Meeting February 2023
 
SFBA Splunk Usergroup meeting December 2022
SFBA Splunk Usergroup meeting December 2022SFBA Splunk Usergroup meeting December 2022
SFBA Splunk Usergroup meeting December 2022
 
SFBA Usergroup meeting November 2, 2022
SFBA Usergroup meeting November 2, 2022SFBA Usergroup meeting November 2, 2022
SFBA Usergroup meeting November 2, 2022
 
SF Bay Area Splunk User Group Meeting October 5, 2022
SF Bay Area Splunk User Group Meeting October 5, 2022SF Bay Area Splunk User Group Meeting October 5, 2022
SF Bay Area Splunk User Group Meeting October 5, 2022
 
SFBA Splunk User Group Meeting August 10, 2022
SFBA Splunk User Group Meeting August 10, 2022SFBA Splunk User Group Meeting August 10, 2022
SFBA Splunk User Group Meeting August 10, 2022
 
SFBA Splunk Usergroup meeting July 13, 2022
SFBA Splunk Usergroup meeting July 13, 2022SFBA Splunk Usergroup meeting July 13, 2022
SFBA Splunk Usergroup meeting July 13, 2022
 
designing-resilient-cloud-native-splunk-arch-in-aws-austin-rose.pdf
designing-resilient-cloud-native-splunk-arch-in-aws-austin-rose.pdfdesigning-resilient-cloud-native-splunk-arch-in-aws-austin-rose.pdf
designing-resilient-cloud-native-splunk-arch-in-aws-austin-rose.pdf
 
Splunking configfiles 20211208_daniel_wilson
Splunking configfiles 20211208_daniel_wilsonSplunking configfiles 20211208_daniel_wilson
Splunking configfiles 20211208_daniel_wilson
 
Getting Started with Splunk Observability September 8, 2021
Getting Started with Splunk Observability September 8, 2021Getting Started with Splunk Observability September 8, 2021
Getting Started with Splunk Observability September 8, 2021
 
Advanced Outlier Detection and Noise Reduction with Splunk & MLTK August 11, ...
Advanced Outlier Detection and Noise Reduction with Splunk & MLTK August 11, ...Advanced Outlier Detection and Noise Reduction with Splunk & MLTK August 11, ...
Advanced Outlier Detection and Noise Reduction with Splunk & MLTK August 11, ...
 

Recently uploaded

Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotecAbortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
一比一原版麦考瑞大学毕业证成绩单如何办理
一比一原版麦考瑞大学毕业证成绩单如何办理一比一原版麦考瑞大学毕业证成绩单如何办理
一比一原版麦考瑞大学毕业证成绩单如何办理
cyebo
 
一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理
一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理
一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理
pyhepag
 
Fuzzy Sets decision making under information of uncertainty
Fuzzy Sets decision making under information of uncertaintyFuzzy Sets decision making under information of uncertainty
Fuzzy Sets decision making under information of uncertainty
RafigAliyev2
 
一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理
pyhepag
 
Exploratory Data Analysis - Dilip S.pptx
Exploratory Data Analysis - Dilip S.pptxExploratory Data Analysis - Dilip S.pptx
Exploratory Data Analysis - Dilip S.pptx
DilipVasan
 
一比一原版西悉尼大学毕业证成绩单如何办理
一比一原版西悉尼大学毕业证成绩单如何办理一比一原版西悉尼大学毕业证成绩单如何办理
一比一原版西悉尼大学毕业证成绩单如何办理
pyhepag
 
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Valters Lauzums
 

Recently uploaded (20)

basics of data science with application areas.pdf
basics of data science with application areas.pdfbasics of data science with application areas.pdf
basics of data science with application areas.pdf
 
2024 Q2 Orange County (CA) Tableau User Group Meeting
2024 Q2 Orange County (CA) Tableau User Group Meeting2024 Q2 Orange County (CA) Tableau User Group Meeting
2024 Q2 Orange County (CA) Tableau User Group Meeting
 
2024 Q1 Tableau User Group Leader Quarterly Call
2024 Q1 Tableau User Group Leader Quarterly Call2024 Q1 Tableau User Group Leader Quarterly Call
2024 Q1 Tableau User Group Leader Quarterly Call
 
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotecAbortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
 
一比一原版麦考瑞大学毕业证成绩单如何办理
一比一原版麦考瑞大学毕业证成绩单如何办理一比一原版麦考瑞大学毕业证成绩单如何办理
一比一原版麦考瑞大学毕业证成绩单如何办理
 
AI Imagen for data-storytelling Infographics.pdf
AI Imagen for data-storytelling Infographics.pdfAI Imagen for data-storytelling Infographics.pdf
AI Imagen for data-storytelling Infographics.pdf
 
Atlantic Grupa Case Study (Mintec Data AI)
Atlantic Grupa Case Study (Mintec Data AI)Atlantic Grupa Case Study (Mintec Data AI)
Atlantic Grupa Case Study (Mintec Data AI)
 
一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理
一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理
一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理
 
Machine Learning for Accident Severity Prediction
Machine Learning for Accident Severity PredictionMachine Learning for Accident Severity Prediction
Machine Learning for Accident Severity Prediction
 
Fuzzy Sets decision making under information of uncertainty
Fuzzy Sets decision making under information of uncertaintyFuzzy Sets decision making under information of uncertainty
Fuzzy Sets decision making under information of uncertainty
 
Artificial_General_Intelligence__storm_gen_article.pdf
Artificial_General_Intelligence__storm_gen_article.pdfArtificial_General_Intelligence__storm_gen_article.pdf
Artificial_General_Intelligence__storm_gen_article.pdf
 
社内勉強会資料  Mamba - A new era or ephemeral
社内勉強会資料   Mamba - A new era or ephemeral社内勉強会資料   Mamba - A new era or ephemeral
社内勉強会資料  Mamba - A new era or ephemeral
 
Easy and simple project file on mp online
Easy and simple project file on mp onlineEasy and simple project file on mp online
Easy and simple project file on mp online
 
Webinar One View, Multiple Systems No-Code Integration of Salesforce and ERPs
Webinar One View, Multiple Systems No-Code Integration of Salesforce and ERPsWebinar One View, Multiple Systems No-Code Integration of Salesforce and ERPs
Webinar One View, Multiple Systems No-Code Integration of Salesforce and ERPs
 
一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理
 
Exploratory Data Analysis - Dilip S.pptx
Exploratory Data Analysis - Dilip S.pptxExploratory Data Analysis - Dilip S.pptx
Exploratory Data Analysis - Dilip S.pptx
 
How I opened a fake bank account and didn't go to prison
How I opened a fake bank account and didn't go to prisonHow I opened a fake bank account and didn't go to prison
How I opened a fake bank account and didn't go to prison
 
一比一原版西悉尼大学毕业证成绩单如何办理
一比一原版西悉尼大学毕业证成绩单如何办理一比一原版西悉尼大学毕业证成绩单如何办理
一比一原版西悉尼大学毕业证成绩单如何办理
 
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
 
Data Visualization Exploring and Explaining with Data 1st Edition by Camm sol...
Data Visualization Exploring and Explaining with Data 1st Edition by Camm sol...Data Visualization Exploring and Explaining with Data 1st Edition by Camm sol...
Data Visualization Exploring and Explaining with Data 1st Edition by Camm sol...
 

SFBA Splunk Usergroup meeting May 3, 2023

  • 1. © 2019 SPLUNK INC. Crash Course in Dashboard Studio Lizzy Li, Sr Manager, Dashboards, Splunk
  • 2. © 2023 SPLUNK INC. A crash course in Dashboard Studio May 2023
  • 3. © 2023 SPLUNK INC. Lizzy Li Principal Product Manager Splunk Dashboards & Analytics Workspace
  • 4. © 2019 SPLUNK INC. Agenda Note: You will see features that are new as of Splunk Cloud Platform 9.0.2303. 1) Dashboard Studio: 10,000 ft view ○ Classic (SimpleXML) & Dashboard Studio comparison 2) New paradigms in Dashboard Studio ○ How to read the dashboard definition ○ How to achieve common Classic use cases in Dashboard Studio 3) Demo 4) Roadmap 5) Q&A
  • 5. Put your hand up if… ● You've heard of Dashboard Studio
  • 6. Put your hand up if… ● You've heard of Dashboard Studio ● You've tried Dashboard Studio (just once counts!)
  • 7. Put your hand up if… ● You've heard of Dashboard Studio ● You've tried Dashboard Studio (just once counts!) ● You've built multiple dashboards in Dashboard Studio
  • 8. Put your hand up if… ● You've heard of Dashboard Studio ● You've tried Dashboard Studio (just once counts!) ● You've built multiple dashboards in Dashboard Studio ● You like building with Dashboard Studio
  • 9. Put your hand up if… ● There are features you need that are missing in Dashboard Studio
  • 10. Put your hand up if… ● There are features you need that are missing in Dashboard Studio ● You just prefer Classic (SimpleXML) dashboards
  • 11. Dashboard Studio is the next generation of Splunk dashboards Designed for intuitive point-and-click building, while maintaining flexibility for advanced use cases.
  • 12. Why is Splunk building a new dashboard framework? We listened to customers and heard the following about Classic dashboards: ● Hard to get something polished enough for execs or high visibility monitors ● Hard for less technical users to do much beyond the basics ● Easy to get started, but hard to master optimizing dashboards or building more advanced use cases
  • 13. © 2019 SPLUNK INC. Key features Classic Dashboard Studio Data sources ad-hoc, base and post-process, saved searches ✅ ✅ Standard charts axes charts, maps, single values ✅ ✅ 3rd party visualizations ✅ ❌ Inputs ✅ ✅ Interactivity link to other pages, set and pass tokens ✅ ✅ Tokenization eval, set, condition; search-based tokens ✅ ✅ logic can be included in SPL Sharing scheduled email export, export to CSV 🚧 scheduled export, limited csv export 🚧 png/pdf export csv export Classic vs. Studio As of Splunk Cloud 9.0.2303 See release notes
  • 15. First we need to understand how the dashboard definition is structured Every dashboard has: ● title ● description ● dataSources ● visualizations ● defaults ● inputs ● layout
  • 16. First we need to understand how the dashboard definition is structured Every dashboard has: ● title ● description ● dataSources ● visualizations ● defaults ● inputs ● layout
  • 17. dataSources ● Data sources include ad-hoc searches, base and chain searches, and saved searches ○ Chain searches are easier to configure now too! "ds_fWuYtYEz": { "type": "ds.search", "options": { "query": "index=tutorial action=purchase status=200 | stats count(productName) as "Quantity" values(price) as Price by productName, clientip, categoryId | eval Revenue=Quantity*Price" }, "name": "Purchases"
  • 18. ● Data sources include ad-hoc searches, base and chain searches, and saved searches ○ Chain searches are easier to configure now too! ● Data sources are now independent from visualizations and inputs ○ This means that data sources can be referenced by multiple visualizations and inputs dataSources "ds_fWuYtYEz": { "type": "ds.search", "options": { "query": "index=tutorial action=purchase status=200 | stats count(productName) as "Quantity" values(price) as Price by productName, clientip, categoryId | eval Revenue=Quantity*Price" }, "name": "Purchases"
  • 19. dataSources ● Data sources include ad-hoc searches, base and chain searches, and saved searches ○ Chain searches are easier to configure now too! ● Data sources are now independent from visualizations and inputs ○ This means that data sources can be referenced by multiple visualizations and inputs ● Data sources are identified by a unique identifier (e.g. "ds_fWuYtYEz": { "type": "ds.search", "options": { "query": "index=tutorial action=purchase status=200 | stats count(productName) as "Quantity" values(price) as Price by productName, clientip, categoryId | eval Revenue=Quantity*Price" }, "name": "Purchases"
  • 20. visualizations ● Visualizations reference data sources via data source ID ○ Secondary data sources may be added for annotations or field summaries for Events Viewer viz "viz_LcdCtHCD": { "type": "splunk.singlevalue", "dataSources": { "primary": "ds_lRYLqjC2" }, "title": "Total unique customers", "options": { "majorValue": "> sparklineValues | lastPoint()", "trendValue": "> sparklineValues | delta(-2)", "sparklineValues": "> primary | seriesByName('customers')" } }
  • 21. visualizations ● Visualizations reference data sources via data source ID ○ Secondary data sources may be added for annotations or field summaries for Events Viewer viz ● Visualizations allow for more flexibility in what from the data source is displayed ○ sparklineValues ○ majorValue ○ trendValue "viz_LcdCtHCD": { "type": "splunk.singlevalue", "dataSources": { "primary": "ds_lRYLqjC2" }, "title": "Total unique customers", "options": { "majorValue": "> sparklineValues | lastPoint()", "trendValue": "> sparklineValues | delta(-2)", "sparklineValues": "> primary | seriesByName('customers')" } }
  • 22. defaults ● Set options once to apply to multiple data sources or visualizations ○ Data source time range ○ Visualization options "defaults": { "dataSources": { "ds.search": { "options": { "queryParameters": { "latest": "0", "earliest": "" } } } }, "visualizations":{ "global":{ "showProgressBar": true }, "splunk.singlevalue":{ "backgroundColor":"#ffffff" } }, "tokens": { "default": { "customer": { "value": "*" } } }
  • 23. defaults ● Set options once to apply to multiple data sources or visualizations ○ Data source time range ○ Visualization options ● Defaults can be set at a global or type-specific level ○ Global: showProgressBar ○ Single values: backgroundColor "defaults": { "dataSources": { "ds.search": { "options": { "queryParameters": { "latest": "0", "earliest": "" } } } }, "visualizations":{ "global":{ "showProgressBar": true }, "splunk.singlevalue":{ "backgroundColor":"#ffffff" } }, "tokens": { "default": { "customer": { "value": "*" } } }
  • 24. defaults ● Set options once to apply to multiple data sources or visualizations ○ Data source time range ○ Visualization options ● Defaults can be set at a global or type-specific level ○ Global: showProgressBar ○ Single values: backgroundColor ● Specify default token values ○ Except input defaults, which are set in the inputs section "defaults": { "dataSources": { "ds.search": { "options": { "queryParameters": { "latest": "0", "earliest": "" } } } }, "visualizations":{ "global":{ "showProgressBar": true }, "splunk.singlevalue":{ "backgroundColor":"#ffffff" } }, "tokens": { "default": { "customer": { "value": "*" } } }
  • 25. New paradigms in Dashboard Studio 1. Data sources are independent from inputs and visualizations, and you can specify what from the data source is displayed in the visualization. This means you can possibly use fewer searches that return more fields, for reuse by multiple visualizations. This can help with performance and resource utilization.
  • 26. New paradigms in Dashboard Studio 1. Data sources are independent from inputs and visualizations, and you can specify what from the data source is displayed in the visualization. This means you can possibly use fewer searches that return more fields, for reuse by multiple visualizations. This can help with performance and resource utilization. 2. You can reference search results and metadata directly as tokens. This means you can move tokenization logic into a search, and set search results as token values.
  • 27. © 2021 SPLUNK INC. © 2023 SPLUNK INC. How to achieve common Classic use cases in Dashboard Studio
  • 28. © 2021 SPLUNK INC. © 2023 SPLUNK INC. Use case 1: token manipulation
  • 29. Classic (Simple XML) example Let's consider how we might set search results as tokens in a Classic dashboard: <search> <query>...</query> <done> <set token="user_error">result.UserError</set> <set token="server_error">result.ServerError</set> </done> </search> This requires manual source code editing and setting multiple token values.
  • 30. Dashboard Studio example In Dashboard Studio, you just need to select "Use search results or job status as tokens" Then reference results using the format $datasource name:result.<fieldname>$ Examples: ● $Interaction status:UserError$ ● $Interaction status:ServerError$ No manual source code editing required, no additional token logic to define.
  • 31. © 2021 SPLUNK INC. © 2023 SPLUNK INC. Use case 2: show/hide panels
  • 32. Let's consider how we might show/hide panels in a Classic dashboard: ● Specify logic to set and unset a token ● Add a "depends" to the desired visualization to display when the token set and hide when unset This requires manual source code editing and possibly adding unset logic to multiple places in the dashboard. Classic (Simple XML) example
  • 33. Dashboard Studio example In Dashboard Studio, you just need to select "When data is unavailable, hide element" ● For many use cases, this is likely all you need ● For more complex use cases, you can set up your search so that it does not return results when you want to hide the element No manual source code editing required, no additional token logic to define.
  • 34. © 2021 SPLUNK INC. © 2023 SPLUNK INC. Use case 3: visual design
  • 35. Let's consider how we might apply visual designs in a Classic dashboard: ● Custom JS ● Custom CSS ● Custom HTML panels This requires higher technical skills, bundling .js and .css with your app, and manual source code editing. Classic (Simple XML) example
  • 36. Dashboard Studio example In Dashboard Studio, you just need to ● Point-and-click support to edit layout, size, and layering of objects ● Add images via upload or URL reference ○ Use images to add corporate logos ○ Use images to layer metrics on top ● GUI for changing colors, adding markdown, and other styling
  • 37. Demo
  • 38. What's next for Dashboard Studio? Advanced interactivity + layouts Show/hide panels, tabbed dashboards, token logic builder Ease of use improvements UI for all key options and workflows, templates, grouping + layering objects More sharing options Export to .json, .html, easier image export, scheduled email export Classic to Studio conversion Automated conversion, post conversion report Subject to change
  • 39. © 2023 SPLUNK INC. Q&A
  • 40. © 2019 SPLUNK INC. Break
  • 41. © 2019 SPLUNK INC. Splunk REST Lookups Upload Becky Burwell, Senior Production Engineer, Yahoo
  • 42. About CSV lookups ● Splunk provides handy CSV lookups. https://docs.splunk.com/Documentation/Splunk/latest/Knowledge/ConfigureCSVlookups CSV lookups match field values from your events to field values in the static table represented by a CSV file. Then they output corresponding field values from that table to your events
  • 43. Using Lookup in Splunk
  • 44. How do I add lookups to Splunk? 1. Run a Splunk search that has the data and use outputlookup index=animal_data | outputlookup ug_demo.csv 2. Use Settings -> Lookups -> Add New
  • 45. How do I add lookups to Splunk? (continued) 3. Use the Splunkbase lookup editor https://splunkbase.splunk.com/app/1724 App provides endpoint to upload lookups that is search head cluster aware. You can upload once and store on all heads in your search head cluster!
  • 46. But how do we upload CSV via the command line? ● Splunk community user mthcht created a Python 3 script to upload a directory of lookup files to Splunk https://github.com/mthcht/lookup-editor_scripts ● The upload script enumerates all files in a given directory ● For each file ○ Opens and reads the lookup file into memory ○ Sends a POST request to the Splunk server/management port using the endpoint /services/data/lookup_edit/lookup_contents with the contents of the file in json format
  • 47. My modifications ● https://github.com/beckyburwell/splunk_rest_upload_lookups splunk_rest_upload_lookups.py splunk_head_url lookup_file splunk_app ● Copied mthcht uploads script as follows ○ Modified it to upload a single lookup file, not a directory of lookups ○ Let the user pass in the Splunk host URL and long with management port ○ Pass in the name of one lookup file ○ Pass in the name of the Splunk app to upload to ○ Changed the hard-coding of the Splunk username and password to prompt the user
  • 48. Script demo $ cat ~/ug_demo.csv animal,color "cat","tabby" "dog","black"
  • 49. How to make more useful? ● Use in script: ○ Script prompts for Splunk admin and password ○ Change that to a secure way of obtaining the credentials; don’t prompt for username/password
  • 50. Notes on Permissions ● In order to use the script, the user needs to be able to store knowledge objects into the app ● By default, the search app is only writable to power and admin ● Users should upload to an app they have access to
  • 51. Summary of Requirements ● Access to Python 3 ● Splunk Lookup Editor installed on Splunk search heads ● User access to the app you want to store the lookups in
  • 52. Acknowledgements and Thanks ● Thanks to community user mthcht ● Thanks to my colleague Paras Jain, who tested my script and gave me feedback
  • 53. © 2019 SPLUNK INC. Questions/Discussion
  • 54. © 2019 SPLUNK INC. Thank You!
  • 55. © 2019 SPLUNK INC. Title and Content Phasellus et nisi lacus, mauris ultricies arcu faucibus orci sit Donec fermentum sollicitudin neque, nec viverra neque lacinia eu Donec mattis tortor vitae egestas pulvinar • Vivamus eu dignissim turpis Nunc eu cursus est, at ullamcorper dui Optional subtitle