Skip to content

Commit f62cbed

Browse files
authored
Feature/upgrade4pub (#1)
* Updated dependencies * Provided compliancy with cloud vetting reqs * Added dashboard to showcase visualizations
1 parent f5a12c8 commit f62cbed

34 files changed

+686191
-474185
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
node-modules/
2-
.DS_Store
2+
.DS_Store
3+
.vscode

LICENSE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@
186186
same "printed page" as the copyright notice for easier
187187
identification within third-party archives.
188188

189-
Copyright 2019 Splunk Inc
189+
Copyright 2021 Splunk Inc
190190

191191
Licensed under the Apache License, Version 2.0 (the "License");
192192
you may not use this file except in compliance with the License.

README.md

Lines changed: 29 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Plotly.js Custom Visualizations
1+
# Financial and Advanced Statistical Data Visualizations
22
A collection of Splunk modular visualizations based on [plotly.js](https://github.com/plotly/plotly.js/), a JavaScript open-source library used to create interactive charts for finance, engineering and sciences.
33

44
Visualizations included into this collection:
@@ -11,9 +11,9 @@ Visualizations included into this collection:
1111
- Unpack/Install Splunk by running the downloaded files.
1212
- Follow the instruction on the screen.
1313

14-
**plotly_custom_viz_splunk** can be downloaded from **GitHub** and installed in your Splunk platform. Access your Splunk instance via terminal and:
14+
**splunk_plotly_collection_viz** can be downloaded from either **GitHub** or Splunkbase and installed in your Splunk platform. Access your Splunk instance via terminal and:
1515
- browse to your apps directory `$SPLUNK_HOME/etc/apps/`
16-
- download the app from github `git clone https://github.com/splunk/splunk-plotly-collection-viz`
16+
- download the app from github `git clone https://github.com/splunk/splunk-plotly-collection-viz.git`
1717
- Restart splunk to apply changes `$SPLUNK_HOME/bin/splunk restart`
1818

1919
## Usage
@@ -28,6 +28,10 @@ If not provided, default values will be used for optional fields `currencypair`,
2828

2929
> Field names **must** correspond to the ones specified above to be properly handled by the visualization
3030
31+
![alt text](OHLC_candlestick.png "OHLC Chart - Candlestick Example")
32+
33+
![alt text](OHLC_bars.png "OHLC Chart - Bars Example")
34+
3135
### Box Plot
3236
`<basesearch> | table box_name value`
3337

@@ -38,76 +42,32 @@ Replace `box_name` and `value` with your fields to start.
3842
| `box_name` | string | Label of the box | `A` |
3943
| `value` | numeric | Data forming box dataset | `20` |
4044

45+
![alt text](boxplot_chart.png "Boxplot Chart Example")
46+
4147
### Multiple Axes Plot
42-
`<basesearch> | table _time y2-dataset y-dataset1 y-dataset2 y-datasetN`
43-
44-
Replace `_time`, `y2-dataset` and `y-datasetX` with your fields to start.
45-
46-
| FieldName | Format | Description | Example |
47-
|--------------|---------|----------------------------------------------|-----------------------|
48-
| `_time` | date | Event time reference | `2019-05-17 07:30:02` |
49-
| `y2-dataset` | numeric | Dataset for scatter plot on secondary Y-Axis | `-1.6` |
50-
| `y-dataset1` | numeric | Dataset for 1st line plot on regular Y-Axis | `10` |
51-
| `y-dataset2` | numeric | Dataset for 2nd line plot on regular Y-Axis | `3` |
52-
| `y-datasetN` | numeric | Dataset for Nth line plot on regular Y-Axis | `32` |
53-
54-
## Examples
55-
Sample SPL Search for OHLC:
56-
57-
```sh
58-
| makeresults count=60
59-
| streamstats count
60-
| eval _time=_time-(count*3600)
61-
| eval open=(random() %50) + 1
62-
| eval sign=if((random() %2)==0,"-","+")
63-
| eval close=(((random() %20)/100)*open)
64-
| eval close=sign+close
65-
| eval close=round(close+open,1)
66-
| eval high=if(open > close,(open*.1)+open,(close*.1)+close)
67-
| eval low=if(open < close,open-(open*.1),close-(close*.1))
68-
| fields - sign,count
69-
| sort _time
70-
| trendline ema8(close) AS 8PointEMA ema20(close) AS 20PointEMA
71-
| reverse
72-
```
73-
74-
OHLC - Candlestick
75-
76-
![alt text](OHLC_candlestick.png "OHLC Chart - Candlestick")
77-
78-
OHLC - Bars
79-
80-
![alt text](OHLC_bars.png "OHLC Chart - Bars")
81-
82-
Sample SPL Search for BoxPlot:
83-
84-
```sh
85-
| makeresults count=100
86-
| streamstats count as group_num
87-
| eval group_num = ((group_num-1) % 5)+1
88-
| eval group_num = "Test ".group_num
89-
| eval y=random() %51
90-
| fields - _time
91-
```
92-
93-
![alt text](boxplot_chart.png "Boxplot Chart")
94-
95-
Sample SPL Search for Multiple-Axes:
96-
```sh
97-
| makeresults count=60
98-
| streamstats count
99-
| eval _time=_time-(count*3600)
100-
| eval line1=(random() %50) + 1
101-
| eval line2=(random() %50) + 1
102-
| eval sign=if((random() %2)==0,"-","+")
103-
| eval scatter=(((random() %20)/100)*line1)
104-
| eval scatter=sign.scatter
105-
| fields - sign,count
106-
| table _time, scatter, line1, line2
107-
```
48+
`<basesearch> | table _time scatter-y2-dataset1 scatter-y2_datasetN line-y-dataset1 line-y-datasetN`
49+
50+
Replace `_time`, `scatter-y2-datasetX` and `line-y-datasetX` with your fields to start.
51+
52+
| FieldName | Format | Description | Example |
53+
|------------------------|---------|----------------------------------------------|-----------------------|
54+
| `_time` | date | Event time reference | `2019-05-17 07:30:02` |
55+
| `scatter-y2-dataset1` | numeric | Dataset for 1st scatter plot on secondary Y-Axis | `-1.6` |
56+
| `scatter-y2-datasetN` | numeric | Dataset for Nth scatter plot on secondary Y-Axis | `-2` |
57+
| `line-y-dataset1` | numeric | Dataset for 1st line plot on regular Y-Axis | `10` |
58+
| `line-y-datasetN` | numeric | Dataset for Nth line plot on regular Y-Axis | `32` |
59+
60+
> Field names **must** begin with `scatter` and `line` to be properly handled by the visualization
10861
10962
![alt text](MultipleAxes_plot.png "Multiple Axes Plot")
11063

64+
## Example
65+
This app comes with a dashboard showcasing simple usages of mentioned charts.
66+
67+
* Navigate to `Apps / Search & Reporting / Dashboards`
68+
* Click on the dashboard `Overview of Plotly Charts for Splunk`
69+
* Be inspired
70+
11171
## Contributing
11272
* Want to **contribute**? Great! Feel free to [create a Pull Request](https://github.com/splunk/splunk-plotly-collection-viz/pulls)
11373
* **Found a bug?** [Open an issue](https://github.com/splunk/splunk-plotly-collection-viz/issues/new)

README/savedsearches.conf.spec

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,41 @@
1-
# Declare properties here
2-
display.visualizations.custom.ohlc.line_chart.showLegend = <number>;
3-
display.visualizations.custom.ohlc.line_chart.chartType = <string>;
4-
display.visualizations.custom.ohlc.line_chart.mbDisplay = <number>;
1+
[<stanza name>]
2+
display.visualizations.custom.ohlc.ohlc.showLegend = <number>
3+
display.visualizations.custom.ohlc.ohlc.chartType = <string>
4+
display.visualizations.custom.ohlc.ohlc.mbDisplay = <number>
55

6-
display.visualizations.custom.ohlc.line_chart.xAxisName = <string>;
7-
display.visualizations.custom.ohlc.line_chart.xAngle = <float>;
8-
display.visualizations.custom.ohlc.line_chart.showRSlider = <number>;
6+
display.visualizations.custom.ohlc.ohlc.xAxisName = <string>
7+
display.visualizations.custom.ohlc.ohlc.xAngle = <float>
8+
display.visualizations.custom.ohlc.ohlc.showRSlider = <number>
99

10-
display.visualizations.custom.ohlc.line_chart.yAxisName = <string>;
11-
display.visualizations.custom.ohlc.line_chart.yAngle = <float>;
10+
display.visualizations.custom.ohlc.ohlc.yAxisName = <string>
11+
display.visualizations.custom.ohlc.ohlc.yAngle = <float>
1212

13-
display.visualizations.custom.ohlc.line_chart.showEMA = <string>;
14-
display.visualizations.custom.ohlc.line_chart.showSMA = <string>;
13+
display.visualizations.custom.ohlc.ohlc.showEMA = <string>
14+
display.visualizations.custom.ohlc.ohlc.showSMA = <string>
1515

1616

1717

18-
display.visualizations.custom.boxplot.line_chart.mbDisplay = <number>;
18+
display.visualizations.custom.boxplot.boxplot.titleChart = <string>
19+
display.visualizations.custom.boxplot.boxplot.mbDisplay = <number>
20+
display.visualizations.custom.boxplot.boxplot.showLegend = <number>
1921

20-
display.visualizations.custom.boxplot.line_chart.xAngle = <float>;
21-
display.visualizations.custom.boxplot.line_chart.yAngle = <float>;
22+
display.visualizations.custom.boxplot.boxplot.xAngle = <float>
23+
display.visualizations.custom.boxplot.boxplot.yAngle = <float>
2224

23-
display.visualizations.custom.boxplot.line_chart.boxMean = <string>;
24-
display.visualizations.custom.boxplot.line_chart.boxPoints = <string>;
25+
display.visualizations.custom.boxplot.boxplot.boxMean = <string>
26+
display.visualizations.custom.boxplot.boxplot.boxPoints = <string>
2527

26-
display.visualizations.custom.boxplot.line_chart.xAxisName = <string>;
27-
display.visualizations.custom.boxplot.line_chart.yAxisName = <string>;
28+
display.visualizations.custom.boxplot.boxplot.xAxisName = <string>
29+
display.visualizations.custom.boxplot.boxplot.yAxisName = <string>
2830

29-
display.visualizations.custom.boxplot.line_chart.showLegend = <number>;
3031

31-
display.visualizations.custom.multiple-axes.line_chart.mbDisplay = <number>;
32+
display.visualizations.custom.multiple-axes.multiple-axes.mbDisplay = <number>
33+
display.visualizations.custom.multiple-axes.multiple-axes.showLegend = <number>
3234

33-
display.visualizations.custom.multiple-axes.line_chart.xAngle = <float>;
34-
display.visualizations.custom.multiple-axes.line_chart.yAngle = <float>;
35-
display.visualizations.custom.multiple-axes.line_chart.y2Angle = <float>;
35+
display.visualizations.custom.multiple-axes.multiple-axes.xAngle = <float>
36+
display.visualizations.custom.multiple-axes.multiple-axes.yAngle = <float>
37+
display.visualizations.custom.multiple-axes.multiple-axes.y2Angle = <float>
3638

37-
display.visualizations.custom.multiple-axes.line_chart.xAxisName = <string>;
38-
display.visualizations.custom.multiple-axes.line_chart.yAxisName = <string>;
39-
display.visualizations.custom.multiple-axes.line_chart.y2AxisName = <string>;
40-
41-
display.visualizations.custom.multiple-axes.line_chart.showLegend = <number>;
39+
display.visualizations.custom.multiple-axes.multiple-axes.xAxisName = <string>
40+
display.visualizations.custom.multiple-axes.multiple-axes.yAxisName = <string>
41+
display.visualizations.custom.multiple-axes.multiple-axes.y2AxisName = <string>

app.manifest

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
{
2+
"schemaVersion": "2.0.0",
3+
"info": {
4+
"title": "Plotly.js Charts for Splunk",
5+
"id": {
6+
"group": null,
7+
"name": "splunk_plotly_collection_viz",
8+
"version": "2.3.0"
9+
},
10+
"author": [
11+
{
12+
"name": "Tamar Zamba, Erica Pescio",
13+
"email": null,
14+
"company": null
15+
}
16+
],
17+
"releaseDate": null,
18+
"description": "Financial and advanced statistical data visualizations based on Plotly.js",
19+
"classification": {
20+
"intendedAudience": null,
21+
"categories": [],
22+
"developmentStatus": null
23+
},
24+
"commonInformationModels": null,
25+
"license": {
26+
"name": null,
27+
"text": "./LICENSE.md",
28+
"uri": null
29+
},
30+
"privacyPolicy": {
31+
"name": null,
32+
"text": null,
33+
"uri": null
34+
},
35+
"releaseNotes": {
36+
"name": null,
37+
"text": "./README.md",
38+
"uri": null
39+
}
40+
},
41+
"dependencies": null,
42+
"tasks": null,
43+
"inputGroups": null,
44+
"incompatibleApps": null,
45+
"platformRequirements": null,
46+
"supportedDeployments": [
47+
"*"
48+
],
49+
"targetWorkloads": [
50+
"_search_heads"
51+
]
52+
}

0 commit comments

Comments
 (0)