diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.23.46 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.23.46 PM.png new file mode 100644 index 0000000..ae4cf1b Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.23.46 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.23.54 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.23.54 PM.png new file mode 100644 index 0000000..8e3126b Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.23.54 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.02 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.02 PM.png new file mode 100644 index 0000000..a1283cc Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.02 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.13 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.13 PM.png new file mode 100644 index 0000000..5c0d082 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.13 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.17 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.17 PM.png new file mode 100644 index 0000000..533ac25 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.17 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.24 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.24 PM.png new file mode 100644 index 0000000..a6aa298 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.24 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.29 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.29 PM.png new file mode 100644 index 0000000..350c9cb Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.24.29 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.25.33 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.25.33 PM.png new file mode 100644 index 0000000..05e8d9e Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.25.33 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.26.01 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.26.01 PM.png new file mode 100644 index 0000000..4c8508f Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.26.01 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.26.18 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.26.18 PM.png new file mode 100644 index 0000000..10f55ea Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.26.18 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.26.23 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.26.23 PM.png new file mode 100644 index 0000000..6a2d3e3 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.26.23 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.26.26 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.26.26 PM.png new file mode 100644 index 0000000..4e0ab44 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.26.26 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.27.53 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.27.53 PM.png new file mode 100644 index 0000000..f6851e3 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.27.53 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.58.23 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.58.23 PM.png new file mode 100644 index 0000000..ad3a39f Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.58.23 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.59.38 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.59.38 PM.png new file mode 100644 index 0000000..0f17985 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 3.59.38 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 4.01.34 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 4.01.34 PM.png new file mode 100644 index 0000000..8a26e65 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 4.01.34 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 4.01.47 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 4.01.47 PM.png new file mode 100644 index 0000000..9051dc5 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 4.01.47 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 4.04.42 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 4.04.42 PM.png new file mode 100644 index 0000000..7ca3f58 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-17 at 4.04.42 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 1.57.02 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 1.57.02 PM.png new file mode 100644 index 0000000..3921791 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 1.57.02 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 2.58.59 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 2.58.59 PM.png new file mode 100644 index 0000000..141d1ae Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 2.58.59 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 3.00.10 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 3.00.10 PM.png new file mode 100644 index 0000000..4709811 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 3.00.10 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 3.02.31 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 3.02.31 PM.png new file mode 100644 index 0000000..2c2e117 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 3.02.31 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 4.18.19 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 4.18.19 PM.png new file mode 100644 index 0000000..b54ba6b Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 4.18.19 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 4.18.32 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 4.18.32 PM.png new file mode 100644 index 0000000..02fe8a9 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 4.18.32 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 5.20.58 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 5.20.58 PM.png new file mode 100644 index 0000000..8efb91f Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-19 at 5.20.58 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.17.47 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.17.47 PM.png new file mode 100644 index 0000000..752ecd3 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.17.47 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.18.08 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.18.08 PM.png new file mode 100644 index 0000000..755a2d9 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.18.08 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.19.08 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.19.08 PM.png new file mode 100644 index 0000000..ee1de1e Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.19.08 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.19.14 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.19.14 PM.png new file mode 100644 index 0000000..58ef3f8 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.19.14 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.20.23 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.20.23 PM.png new file mode 100644 index 0000000..5f0ec50 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.20.23 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.21.07 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.21.07 PM.png new file mode 100644 index 0000000..07b24ad Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.21.07 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.21.52 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.21.52 PM.png new file mode 100644 index 0000000..d2ea857 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.21.52 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.22.47 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.22.47 PM.png new file mode 100644 index 0000000..909aaa4 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.22.47 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.23.15 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.23.15 PM.png new file mode 100644 index 0000000..dd36bc4 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.23.15 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.24.12 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.24.12 PM.png new file mode 100644 index 0000000..51efa74 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2018-12-20 at 2.24.12 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.00.28 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.00.28 PM.png new file mode 100644 index 0000000..4aff3ce Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.00.28 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.02.33 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.02.33 PM.png new file mode 100644 index 0000000..044f810 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.02.33 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.02.36 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.02.36 PM.png new file mode 100644 index 0000000..2f070e1 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.02.36 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.03.04 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.03.04 PM.png new file mode 100644 index 0000000..720dcc1 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.03.04 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.03.38 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.03.38 PM.png new file mode 100644 index 0000000..fa2a2a3 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.03.38 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.05.13 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.05.13 PM.png new file mode 100644 index 0000000..68ca3e3 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.05.13 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.10.49 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.10.49 PM.png new file mode 100644 index 0000000..fa1c155 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.10.49 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.15.05 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.15.05 PM.png new file mode 100644 index 0000000..04e4cd6 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.15.05 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.18.44 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.18.44 PM.png new file mode 100644 index 0000000..e9acb39 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.18.44 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.18.51 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.18.51 PM.png new file mode 100644 index 0000000..e50d216 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.18.51 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.19.47 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.19.47 PM.png new file mode 100644 index 0000000..f2928b8 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.19.47 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.19.51 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.19.51 PM.png new file mode 100644 index 0000000..f2928b8 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.19.51 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.19.58 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.19.58 PM.png new file mode 100644 index 0000000..4529c28 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-11 at 3.19.58 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-13 at 10.32.32 AM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-13 at 10.32.32 AM.png new file mode 100644 index 0000000..90037e0 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-13 at 10.32.32 AM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-13 at 11.11.50 AM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-13 at 11.11.50 AM.png new file mode 100644 index 0000000..cbfa909 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-13 at 11.11.50 AM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-13 at 11.21.19 AM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-13 at 11.21.19 AM.png new file mode 100644 index 0000000..777173c Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-01-13 at 11.21.19 AM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-02-14 at 12.03.26 PM.png b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-02-14 at 12.03.26 PM.png new file mode 100644 index 0000000..54f489e Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen Shot 2019-02-14 at 12.03.26 PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen_Shot_2019-02-08_at_10.19.56_AM.png b/observability-and-analysis/telemetry/grafana/images/Screen_Shot_2019-02-08_at_10.19.56_AM.png new file mode 100644 index 0000000..d8f9f42 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen_Shot_2019-02-08_at_10.19.56_AM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen_Shot_2019-02-15_at_2.53.37_PM.png b/observability-and-analysis/telemetry/grafana/images/Screen_Shot_2019-02-15_at_2.53.37_PM.png new file mode 100644 index 0000000..31ead62 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen_Shot_2019-02-15_at_2.53.37_PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen_Shot_2019-02-15_at_2.59.47_PM.png b/observability-and-analysis/telemetry/grafana/images/Screen_Shot_2019-02-15_at_2.59.47_PM.png new file mode 100644 index 0000000..c1c1c13 Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen_Shot_2019-02-15_at_2.59.47_PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/Screen_Shot_2019-02-15_at_3.06.49_PM.png b/observability-and-analysis/telemetry/grafana/images/Screen_Shot_2019-02-15_at_3.06.49_PM.png new file mode 100644 index 0000000..2129aac Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/Screen_Shot_2019-02-15_at_3.06.49_PM.png differ diff --git a/observability-and-analysis/telemetry/grafana/images/templating.gif b/observability-and-analysis/telemetry/grafana/images/templating.gif new file mode 100644 index 0000000..871459a Binary files /dev/null and b/observability-and-analysis/telemetry/grafana/images/templating.gif differ diff --git a/observability-and-analysis/telemetry/grafana/kubernetes.md b/observability-and-analysis/telemetry/grafana/kubernetes.md new file mode 100644 index 0000000..df87b38 --- /dev/null +++ b/observability-and-analysis/telemetry/grafana/kubernetes.md @@ -0,0 +1,80 @@ +# Oracle Kubernetes Engine Installation - Oracle Cloud Infrastructure Data Source for Grafana + +## Pre-requisites: + +* [Oracle Container Engine for Kubernetes (OKE)](http://www.oracle.com/webfolder/technetwork/tutorials/obe/oci/oke-full/index.html) +* [Kubectl 1.7.4](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +* [Helm](https://github.com/kubernetes/helm#install) + +## Background + +Grafana is a popular technology that makes it easy to visualize metrics. The [Oracle Cloud Infrastructure Data Source for Grafana](https://grafana.com/plugins/oci-datasource) is used to extend Grafana by adding OCI as a data source. The plugin enables you to visualize metrics related to a number of OCI resources: Compute, Networking, Storage, and custom metrics. + +This walkthrough is intended for use by people who would like to deploy Grafana and the OCI Data Source for Grafana on a Kubernetes environment. + +## Configuring the OCI Identity policies + +In order to use the the OCI Data Source for Grafana on OKE, the first step is to create a [dynamic group](https://docs.cloud.oracle.com/iaas/Content/Identity/Tasks/managingdynamicgroups.htm) used to group virtual machine or bare metal compute instances as “principals” (similar to user groups). Create a dynamic group that corresponds to all of your OKE worker nodes: + + ![Screen Shot 2018-12-17 at 4.01.34 PM](images/Screen%20Shot%202018-12-17%20at%204.01.34%20PM.png) + +Next, create a [policy](https://docs.cloud.oracle.com/iaas/Content/Identity/Concepts/policygetstarted.htm) named “grafana_policy” in the root compartment of your tenancy to permit instances in the dynamic group to make API calls against Oracle Cloud Infrastructure services. Add the following policy statements: + +* `allow group grafana to read metrics in tenancy` +* `allow group grafana to read compartments in tenancy` + + ![Screen Shot 2018-12-17 at 4.01.47 PM](images/Screen%20Shot%202018-12-17%20at%204.01.47%20PM.png) + + +## The Grafana Helm chart + +Next, we are going to install the stable Helm chart for Grafana. We will do this in two parts: First, update the stable repository by running: `helm repo update` + +Next, install the stable chart for Grafana. To do this run: `helm install --name grafana stable/grafana` + +We can now make a change to the deployment that was created for Grafana by running `kubectl edit deployment grafana`, and adding an additional environment variable to the Grafana contianer which will download the plugin. After saving the deployment, the changes will be reflected with a new pod. + +``` + - name: GF_INSTALL_PLUGINS + value: oci-datasource +``` + +## Accessing Grafana + +To see if everything is working correctly, access Grafana using Kubernetes port-forwarding. To do this run: `export POD_NAME=$(kubectl get pods --namespace default -l "app=grafana,release=grafana" -o jsonpath="{.items[0].metadata.name}")` + +Followed by: `kubectl --namespace default port-forward $POD_NAME 3000` + +You can obtain the password for the admin user by running: `kubectl get secret --namespace default grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo` + +## Configure Grafana + +The next step is to configure the plugin. Navigate to the Grafana homepage at `http://localhost:3000` + +![Screen Shot 2018-12-17 at 3.23.46 PM](images/Screen%20Shot%202018-12-17%20at%203.23.46%20PM.png) + +Log in with the default username `admin` and the password you obtained from the kubectl command from the previous section. + +On the Home Dashboard click the gear icon on the left side of the page. + +![Screen Shot 2018-12-17 at 3.24.02 PM](images/Screen%20Shot%202018-12-17%20at%203.24.02%20PM.png) + +Click **Add data source**. + +![Screen Shot 2018-12-17 at 3.24.13 PM](images/Screen%20Shot%202018-12-17%20at%203.24.13%20PM.png) + + Choose **oracle-oci-datasource** as your data source type. + +![Screen Shot 2018-12-17 at 3.24.24 PM](images/Screen%20Shot%202018-12-17%20at%203.24.17%20PM.png) + +Fill in your **Tenancy OCID**, **Default Region**, and **Environment**. Your **Default region** is the same as your home region listed in the **Tenancy Details** page. For **Environment** choose **OCI Instance**. + +Click **Save & Test** to return to the home dashboard. + +![Screen Shot 2018-12-17 at 3.25.33 PM](images/Screen_Shot_2019-02-08_at_10.19.56_AM.png) + +## Next Steps + +Check out how to use the newly installed and configured plugin in our [Using Grafana with Oracle Cloud Infrastructure Data Source](docs/Using%20Grafana%20with%20the%20Oracle%20Cloud%20Infrastructure%20Data%20Source.md) walkthrough. + + diff --git a/observability-and-analysis/telemetry/grafana/linux.md b/observability-and-analysis/telemetry/grafana/linux.md new file mode 100644 index 0000000..65afa4f --- /dev/null +++ b/observability-and-analysis/telemetry/grafana/linux.md @@ -0,0 +1,72 @@ +# Local Installation (Linux) - Oracle Cloud Infrastructure Data Source for Grafana + +## Background + +Grafana is a popular technology that makes it easy to visualize metrics. The Oracle Cloud Infrastructure Data Source for Grafana is used to extend Grafana by adding OCI as a data source. The plugin enables you to visualize metrics related to a number of OCI resources: Compute, Networking, Storage, and custom metrics. + +This walkthrough is intended for use by people who would like to deploy Grafana and the OCI Data Source for Grafana on a local server. + +## Install the Oracle Cloud Infrastructure CLI + +The [Oracle Cloud Infrastructure CLI](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/cliconcepts.htm) provides you with a way to perform tasks in OCI from your command line rather than the OCI Console. It does so by making REST calls to the [OCI APIs](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm). We will be using the CLI to authenticate between our local environment hosting Grafana and OCI in order to pull in metrics. The CLI is built on Python (version 2.7.5 or 3.5 or later), running on Mac, Windows, or Linux. + +Begin by [installing the Oracle Cloud Infrastructure CLI](https://docs.cloud.oracle.com/iaas/Content/API/SDKDocs/cliinstall.htm). Follow the installation prompts to install the CLI on your local environment. After the installation is complete, use the `oci setup config` command to have the CLI walk you through the first-time setup process. If you haven't already uploaded your public API signing key through the console, follow the instructions [here](https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm#How2) to do so. + +## Configure OCI Identity Policies + +In the OCI console under **Identity > Groups** click **Create Group** and create a new group called **grafana**. Add the user configured in the OCI CLI to the newly-created group. + +![Screen Shot 2018-12-19 at 3.02.31 PM](images/Screen%20Shot%202018-12-19%20at%203.02.31%20PM.png) + +Under the **Policy** tab click **Create Policy** and create a policy allowing the group to read tenancy metrics. Add the following policy statements: + +- `allow group grafana to read metrics in tenancy` +- `allow group grafana to read compartments in tenancy` + +![Screen Shot 2018-12-19 at 3.00.10 PM](images/Screen%20Shot%202018-12-19%20at%203.00.10%20PM.png) + +## Install Grafana and the OCI Data Source for Grafana Plugin + +To [install the data source](https://grafana.com/plugins/oci-datasource/installation) make sure you are running [Grafana 3.0](https://grafana.com/get) or later. Use the [grafana-cli tool](http://docs.grafana.org/plugins/installation/) to install the Oracle Cloud Infrastructure Data Source for Grafana from the command line: + +``` +grafana-cli plugins install oci-datasource +``` + +The plugin will be installed into your Grafana plugins directory, which by default is located at /var/lib/grafana/plugins. [Here is more information on the CLI tool](http://docs.grafana.org/plugins/installation/). Alternatively, you can manually download the .zip file and unpack it into your /grafana/plugins directory. To do so, change to the Grafana plugins directory: `cd /usr/local/var/lib/grafana/plugins`. Download the OCI Grafana Plugin: wget `https://grafana.com/api/plugins/oci-datasource/versions/1.0.0/download`. Create a directory and install the plugin: `mkdir oci && tar -C oci -xvf plugin.tar` and then remove the tarball: `rm plugin.tar`. + +To start the Grafana server, run: `sudo systemctl start grafana-server`. + +Navigate to the Grafana homepage at http://localhost:3000. + + +## Configure Grafana + +![Screen Shot 2018-12-17 at 3.23.46 PM](images/Screen%20Shot%202018-12-17%20at%203.23.46%20PM.png) + +Log in with the default username `admin` and the password `admin`. You will be prompted to change your password. Click **Skip** or **Save** to continue. + +![Screen Shot 2018-12-17 at 3.23.54 PM](images/Screen%20Shot%202018-12-17%20at%203.23.54%20PM.png) + +On the Home Dashboard click the gear icon on the left side of the page. + +![Screen Shot 2018-12-17 at 3.24.02 PM](images/Screen%20Shot%202018-12-17%20at%203.24.02%20PM.png) + +Click **Add data source**. + +![Screen Shot 2018-12-17 at 3.24.13 PM](images/Screen%20Shot%202018-12-17%20at%203.24.13%20PM.png) + + Choose **oracle-oci-datasource** as your data source type. + +![Screen Shot 2018-12-17 at 3.24.24 PM](images/Screen%20Shot%202018-12-17%20at%203.24.17%20PM.png) + +Fill in your **Tenancy OCID**, **Default Region**, and **Environment**. For **Environment** choose **local**. + +Click **Save & Test** to return to the home dashboard. + +![Screen Shot 2018-12-17 at 3.25.33 PM](images/Screen%20Shot%202018-12-17%20at%203.25.33%20PM.png) + +## Next Steps + +Check out how to use the newly installed and configured plugin in our [Using Grafana with Oracle Cloud Infrastructure Data Source](docs/Using%20Grafana%20with%20the%20Oracle%20Cloud%20Infrastructure%20Data%20Source.md) walkthrough. + diff --git a/observability-and-analysis/telemetry/grafana/linuxoci.md b/observability-and-analysis/telemetry/grafana/linuxoci.md new file mode 100644 index 0000000..5218329 --- /dev/null +++ b/observability-and-analysis/telemetry/grafana/linuxoci.md @@ -0,0 +1,67 @@ +# OCI Virtual Machine Installation - Oracle Cloud Infrastructure Data Source for Grafana + +## Background + +Grafana is a popular technology that makes it easy to visualize metrics. The Oracle Cloud Infrastructure Data Source for Grafana is used to extend Grafana by adding OCI as a data source. The plugin enables you to visualize metrics related to a number of OCI resources: Compute, Networking, Storage, and custom metrics. + +This walkthrough is intended for use by people who would like to deploy Grafana and the OCI Data Source for Grafana on a virtual machine in OCI. + +## Create the Grafana Environment in OCI + +Provision an Oracle Linux [virtual machine](https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/computeoverview.htm) in OCI connected to a [Virtual Cloud Network](https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/managingVCNs.htm) with access to the public internet. If you do not already have access to a Virtual Cloud Network with access to the public internet you can navigate to **Virtual Cloud Networks** under **Networking** and click **Create Virtual Cloud Network**. Choosing the `CREATE VIRTUAL CLOUD NETWORK PLUS RELATED RESOURCES` option will result in a VCN with an Internet Routing Gateway and Route Tables configured for access to the public internet. Three subnets will be created: one in each availability domain in the region. + +After creating your VM, the next step is to create a [dynamic group](https://docs.cloud.oracle.com/iaas/Content/Identity/Tasks/managingdynamicgroups.htm) used to group virtual machine or bare metal compute instances as “principals” (similar to user groups). + + ![Screen Shot 2018-12-17 at 4.01.34 PM](images/Screen%20Shot%202018-12-17%20at%204.01.34%20PM.png) + +Next, create a [policy](https://docs.cloud.oracle.com/iaas/Content/Identity/Concepts/policygetstarted.htm) named “grafana_policy” in the root compartment of your tenancy to permit instances in the dynamic group to make API calls against Oracle Cloud Infrastructure services. Add the following policy statements: + +* `allow group grafana to read metrics in tenancy` +* `allow group grafana to read compartments in tenancy` + + ![Screen Shot 2018-12-17 at 4.01.47 PM](images/Screen%20Shot%202018-12-17%20at%204.01.47%20PM.png) + +## Install Grafana and the OCI Data Source for Grafana Plugin + +To [install the data source](https://grafana.com/plugins/oci-datasource/installation) make sure you are running [Grafana 3.0](https://grafana.com/get) or later. Use the [grafana-cli tool](http://docs.grafana.org/plugins/installation/) to install the Oracle Cloud Infrastructure Data Source for Grafana from the command line: + +``` +grafana-cli plugins install oci-datasource +``` + +The plugin will be installed into your Grafana plugins directory, which by default is located at /var/lib/grafana/plugins. [Here is more information on the CLI tool](http://docs.grafana.org/plugins/installation/). Alternatively, you can manually download the .zip file and unpack it into your /grafana/plugins directory. To do so, change to the Grafana plugins directory: `cd /usr/local/var/lib/grafana/plugins`. Download the OCI Grafana Plugin: wget `https://grafana.com/api/plugins/oci-datasource/versions/1.0.0/download`. Create a directory and install the plugin: `mkdir oci && tar -C oci -xvf plugin.tar` and then remove the tarball: `rm plugin.tar`. + +To start the Grafana server, run: `sudo systemctl start grafana-server`. + + +## Configure Grafana + +The next step is to configure the plugin. To find the IP address of the newly-created instance, navigate to Compute > Instances > [Your Instance]. The Public IP address is listed under the Primary VNIC Information section. Connect to Grafana via port forward by running `ssh opc@[Instance Public IP] -L 3000:localhost:3000`. + +Navigate to the Grafana homepage at http://localhost:3000. + +![Screen Shot 2018-12-17 at 3.23.46 PM](images/Screen%20Shot%202018-12-17%20at%203.23.46%20PM.png) + +Log in with the default username `admin` and the password `admin`. You will be prompted to change your password. Click **Skip** or **Save** to continue. ![Screen Shot 2018-12-17 at 3.23.54 PM](images/Screen%20Shot%202018-12-17%20at%203.23.54%20PM.png) + +On the Home Dashboard click the gear icon on the left side of the page. + +![Screen Shot 2018-12-17 at 3.24.02 PM](images/Screen%20Shot%202018-12-17%20at%203.24.02%20PM.png) + +Click **Add data source**. + +![Screen Shot 2018-12-17 at 3.24.13 PM](images/Screen%20Shot%202018-12-17%20at%203.24.13%20PM.png) + + Choose **oracle-oci-datasource** as your data source type. + +![Screen Shot 2018-12-17 at 3.24.24 PM](images/Screen%20Shot%202018-12-17%20at%203.24.17%20PM.png) + +Fill in your **Tenancy OCID**, **Default Region**, and **Environment**. Your **Default region** is the same as your home region listed in the **Tenancy Details** page. For **Environment** choose **OCI Instance**. + +Click **Save & Test** to return to the home dashboard. + +![Screen Shot 2018-12-17 at 3.25.33 PM](images/Screen_Shot_2019-02-08_at_10.19.56_AM.png) + +## Next Steps + +Check out how to use the newly installed and configured plugin in our [Using Grafana with Oracle Cloud Infrastructure Data Source](docs/Using%20Grafana%20with%20the%20Oracle%20Cloud%20Infrastructure%20Data%20Source.md) walkthrough. \ No newline at end of file diff --git a/observability-and-analysis/telemetry/grafana/macos.md b/observability-and-analysis/telemetry/grafana/macos.md new file mode 100644 index 0000000..56d2797 --- /dev/null +++ b/observability-and-analysis/telemetry/grafana/macos.md @@ -0,0 +1,72 @@ +# Local Installation (MacOS) - Oracle Cloud Infrastructure Data Source for Grafana + +## Background + +Grafana is a popular technology that makes it easy to visualize metrics. The Oracle Cloud Infrastructure Grafana Plugin is used to extend Grafana by adding OCI as a data source. The plugin enables you to visualize metrics related to a number of OCI resources: Compute, Networking, Storage, and custom metrics. + +This walkthrough is intended for use by people who would like to deploy Grafana and the OCI Data Source for Grafana on a local server. + +## Install the Oracle Cloud Infrastructure CLI + +The [Oracle Cloud Infrastructure CLI](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/cliconcepts.htm) provides you with a way to perform tasks in OCI from your command line rather than the OCI Console. It does so by making REST calls to the [OCI APIs](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm). We will be using the CLI to authenticate between our local environment hosting Grafana and OCI in order to pull in metrics. The CLI is built on Python (version 2.7.5 or 3.5 or later), running on Mac, Windows, or Linux. + +Begin by [installing the Oracle Cloud Infrastructure CLI](https://docs.cloud.oracle.com/iaas/Content/API/SDKDocs/cliinstall.htm). Follow the installation prompts to install the CLI on your local environment. After the installation is complete, use the `oci setup config` command to have the CLI walk you through the first-time setup process. If you haven't already uploaded your public API signing key through the console, follow the instructions [here](https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm#How2) to do so. + +## Configure OCI Identity Policies + +In the OCI console under **Identity > Groups** click **Create Group** and create a new group called **grafana**. Add the user configured in the OCI CLI to the newly-created group. + +![Screen Shot 2018-12-19 at 3.02.31 PM](images/Screen%20Shot%202018-12-19%20at%203.02.31%20PM.png) + +Under the **Policy** tab switch to the root compartment and click **Create Policy**. Create a policy allowing the group to read tenancy metrics. Add the following policy statements: + +- `allow group grafana to read metrics in tenancy` +- `allow group grafana to read compartments in tenancy` + +![Screen Shot 2018-12-19 at 3.00.10 PM](images/Screen%20Shot%202018-12-19%20at%203.00.10%20PM.png) + +## Install Grafana and the OCI Data Source for Grafana Plugin + +To [install the data source](https://grafana.com/plugins/oci-datasource/installation) make sure you are running [Grafana 3.0](https://grafana.com/get) or later. On a MacOS system run: `brew install grafana`. Use the [grafana-cli tool](http://docs.grafana.org/plugins/installation/) to install the Oracle Cloud Infrastructure Data Source for Grafana from the command line: + +``` +grafana-cli plugins install oci-datasource +``` + +The plugin will be installed into your Grafana plugins directory, which by default is located at /var/lib/grafana/plugins. [Here is more information on the CLI tool](http://docs.grafana.org/plugins/installation/). Alternatively, you can manually download the .zip file and unpack it into your /grafana/plugins directory. To do so, change to the Grafana plugins directory: `cd /usr/local/var/lib/grafana/plugins`. Download the OCI Grafana Plugin: wget `https://grafana.com/api/plugins/oci-datasource/versions/1.0.0/download`. Create a directory and install the plugin: `mkdir oci && tar -C oci -xvf plugin.tar` and then remove the tarball: `rm plugin.tar` + +To start the Grafana server, run: `brew services start grafana` + +Navigate to the Grafana homepage at http://localhost:3000. + + +## Configure Grafana + +![Screen Shot 2018-12-17 at 3.23.46 PM](images/Screen%20Shot%202018-12-17%20at%203.23.46%20PM.png) + +Log in with the default username `admin` and the password `admin`. You will be prompted to change your password. Click **Skip** or **Save** to continue. + +![Screen Shot 2018-12-17 at 3.23.54 PM](images/Screen%20Shot%202018-12-17%20at%203.23.54%20PM.png) + +On the Home Dashboard click the gear icon on the left side of the page. + +![Screen Shot 2018-12-17 at 3.24.02 PM](images/Screen%20Shot%202018-12-17%20at%203.24.02%20PM.png) + +Click **Add data source**. + +![Screen Shot 2018-12-17 at 3.24.13 PM](images/Screen%20Shot%202018-12-17%20at%203.24.13%20PM.png) + + Choose **oracle-oci-datasource** as your data source type. + +![Screen Shot 2018-12-17 at 3.24.24 PM](images/Screen%20Shot%202018-12-17%20at%203.24.17%20PM.png) + +Fill in your **Tenancy OCID**, **Default Region**, and **Environment**. For **Environment** choose **local**. + +Click **Save & Test** to return to the home dashboard. + +![Screen Shot 2018-12-17 at 3.25.33 PM](images/Screen%20Shot%202018-12-17%20at%203.25.33%20PM.png) + +## Next Steps + +Check out how to use the newly installed and configured plugin in our [Using Grafana with Oracle Cloud Infrastructure Data Source](docs/Using%20Grafana%20with%20the%20Oracle%20Cloud%20Infrastructure%20Data%20Source.md) walkthrough. + diff --git a/observability-and-analysis/telemetry/grafana/readme.md b/observability-and-analysis/telemetry/grafana/readme.md new file mode 100644 index 0000000..f7e2c44 --- /dev/null +++ b/observability-and-analysis/telemetry/grafana/readme.md @@ -0,0 +1,10 @@ +# Grafana + +Grafana is the leading open source platform for analytics and monitoring. Grafana is an open-source visualization and alerting tool for time series data. It was designed with a plugin architecture that allows you to capture data across many different sources and visualize it on a single dashboard. This approach addresses the issue of cloud sprawl, by providing users with a consolidated view of resources across providers. + +[The Oracle Cloud Monitoring Service](https://docs.cloud.oracle.com/iaas/Content/Monitoring/Concepts/monitoringoverview.htm) offers out of the box aggregated metrics for Oracle Cloud Infrastructure services and resources. We also make these metrics available from an open API. We worked with Grafana to expose the Monitoring service as a Grafana data source. This means you can visualize Oracle Cloud Infrastructure data in your Grafana instance and use it to create beautiful and useful dashboards. + +We have created multiple documents to help with the installation process, including one for a [Linux host](linux.md), [MacOS host](macos.md), a [virtual machine in Oracle Cloud Infrastructure](linuxoci.md), a [virtual machine in Oracle Cloud Infrastructure using Terraform](terraform.md), and on [Kubernetes](kubernetes.md). We also have documentation for how to use the newly installed and configured plugin in our [Using Grafana with Oracle Cloud Infrastructure Data Source](using.md) walkthrough. + + + diff --git a/observability-and-analysis/telemetry/grafana/solution.json b/observability-and-analysis/telemetry/grafana/solution.json new file mode 100644 index 0000000..ceb9857 --- /dev/null +++ b/observability-and-analysis/telemetry/grafana/solution.json @@ -0,0 +1,38 @@ +{ + "sections": [{ + "section": "overview", + "files": [{ + "title": "Introduction to Grafana", + "file": "readme.md" + }] + }, + { + "section": "guides", + "files": [{ + "title": "Installation on a Linux Host", + "file": "linux.md" + }, + { + "title": "Installation on a MacOS Host", + "file": "macos.md" + }, + { + "title": "Installation on a Virtual Machine in Oracle Cloud", + "file": "linuxoci.md" + }, + { + "title": "Installation on a Virtual Machine in Oracle Cloud with Terraform", + "file": "terraform.md" + }, + { + "title": "Installation on a Kubernetes Cluster", + "file": "kubernetes.md" + }, + { + "title": "Using Grafana with the Oracle Cloud Infrastructure Data Source", + "file": "using.md)" + } + ] + } + ] +} \ No newline at end of file diff --git a/observability-and-analysis/telemetry/grafana/terraform.md b/observability-and-analysis/telemetry/grafana/terraform.md new file mode 100644 index 0000000..70ef8d2 --- /dev/null +++ b/observability-and-analysis/telemetry/grafana/terraform.md @@ -0,0 +1,96 @@ +# Terraform-Based Installation - Oracle Cloud Infrastructure Data Source for Grafana + +## Background + +Grafana is a popular technology that makes it easy to visualize metrics. The Oracle Cloud Infrastructure Data Source for Grafana is used to extend Grafana by adding OCI as a data source. The plugin enables you to visualize metrics related to a number of OCI resources: Compute, Networking, Storage, and custom metrics. + +This walkthrough is intended for use by people who would like to deploy Grafana and the OCI Data Source for Grafana on a virtual machine in OCI. + +## Install Terraform + +Begin by [installing Terraform](https://learn.hashicorp.com/terraform/getting-started/install) onto your development machine. We will be using the [Oracle Cloud Infrastructure Provider](https://www.terraform.io/docs/providers/oci/index.html), a tool designed to understand API interactions and exposing resource related to a specific cloud vendor, in this case Oracle Cloud Infrastructure. Terraform requires a number of variables in order to properly create an environment for Grafana and the OCI Data Source for Grafana plugin: + +``` +variable "tenancy_ocid" {} +variable "user_ocid" {} +variable "fingerprint" {} +variable "private_key_path" {} +variable "region" {} +variable "compartment_ocid" {} +variable "ssh_public_key" {} +variable "ssh_private_key" {} +variable "subnet_id" {} +variable "availability_domain" {} +variable "dynamic_group_name" {} +``` + +Information regarding how to find each of these variables is located [here](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/apisigningkey.htm). It can be useful to pass these variables into your .bashrc or .bash_profile. You will need to enter a value for the availability domain of your subnet (e.g. PKGK:US-ASHBURN-AD-1). This information can be found under Networking > Virtual Cloud Networks > [Your Network] > Subnets. It will also prompt you for the name of your dynamic group (e.g. metric-collection). + +The Terraform script requires the use of an existing [Virtual Cloud Network](https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/managingVCNs.htm) with access to the public internet. If you do not already have access to a Virtual Cloud Network with access to the public internet you can navigate to **Virtual Cloud Networks** under **Networking** and click **Create Virtual +Cloud Network**. Choosing the **CREATE VIRTUAL CLOUD NETWORK PLUS RELATED RESOURCES** option will result in a VCN with an Internet Routing Gateway and Route Tables configured for access to the public internet. Three subnets will be created: one in each availability domain in the region. + +![Screen Shot 2018-12-17 at 3.58.23 PM](images/Screen%20Shot%202018-12-17%20at%203.58.23%20PM.png) + +## Create the Grafana Environment with Terraform + +After Terraform has been downloaded on your development machine, download the Terraform scripts here: `wget https://objectstorage.us-ashburn-1.oraclecloud.com/n/oracle-cloudnative/b/GrafanaTerraform/o/terraform_grafana.tar && tar -xvf terraform_grafana.tar` + +`cd /terraform_grafana`. Initialize a new Terraform configuration with `terraform init`. This will result in the creation of two additional files in the directory: `terraform.tfstate` and `terraform.tfstate.backup`. + +Next run `terraform plan` to generate an execution plan. This is useful to validate your Terraform script prior to applying it to your environment. The command will output the end state of your environment. + +![Screen Shot 2018-12-17 at 3.59.38 PM](images/Screen%20Shot%202018-12-17%20at%203.59.38%20PM.png) + +Run `terraform apply` and enter the same availability domain and dynamic group name variables used in the previous step. This will build the infrastructure specified in the execution plan. The following three actions will take place: + +1. The script will first create a [dynamic group](https://docs.cloud.oracle.com/iaas/Content/Identity/Tasks/managingdynamicgroups.htm) used to group virtual machine or bare metal compute instances as “principals” (similar to user groups). This will be named according to the variable you passed in during the previous step. + + ![Screen Shot 2018-12-17 at 4.01.34 PM](images/Screen%20Shot%202018-12-17%20at%204.01.34%20PM.png) + +2. Next, a [policy](https://docs.cloud.oracle.com/iaas/Content/Identity/Concepts/policygetstarted.htm) named “grafana_policy” will be created in the root compartment of your tenancy to permit instances in the dynamic group to make API calls against Oracle Cloud Infrastructure services. + + ![Screen Shot 2018-12-17 at 4.01.47 PM](images/Screen%20Shot%202018-12-17%20at%204.01.47%20PM.png) + +3. The script will then provision a [compute](https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/computeoverview.htm) instance with the name TFInstance0 in the compartment of your choice connected to the specified Virtual Cloud Network. After the instance is provisioned, the script will download and install Grafana and the Grafana OCI plugin. The plugin is stored in [Oracle Object Storage](https://docs.cloud.oracle.com/iaas/Content/Object/Concepts/objectstorageoverview.htm). + +![Screen Shot 2018-12-17 at 4.04.42 PM](images/Screen%20Shot%202018-12-17%20at%204.04.42%20PM.png) + +Once the Terraform script is finished running you will receive an "Apply complete!" notification. + +## Configure Grafana + +The next step is to configure the plugin. To find the IP address of the newly-created instance, navigate to Compute > Instances > TFInstance0. The Public IP address is listed under the Primary VNIC Information section. Using the SSH key referenced in your Terraform variables, connect to Grafana via port forward by running `ssh opc@[Instance Public IP] -L 3000:localhost:3000`. + +Navigate to the Grafana homepage at http://localhost:3000. + +![Screen Shot 2018-12-17 at 3.23.46 PM](images/Screen%20Shot%202018-12-17%20at%203.23.46%20PM.png) + +Log in with the default username `admin` and the password `admin`. You will be prompted to change your password. Click **Skip** or **Save** to continue. ![Screen Shot 2018-12-17 at 3.23.54 PM](images/Screen%20Shot%202018-12-17%20at%203.23.54%20PM.png) + +On the Home Dashboard click the gear icon on the left side of the page. + +![Screen Shot 2018-12-17 at 3.24.02 PM](images/Screen%20Shot%202018-12-17%20at%203.24.02%20PM.png) + +Click **Add data source**. + +![Screen Shot 2018-12-17 at 3.24.13 PM](images/Screen%20Shot%202018-12-17%20at%203.24.13%20PM.png) + + Choose **oracle-oci-datasource** as your data source type. + +![Screen Shot 2018-12-17 at 3.24.24 PM](images/Screen%20Shot%202018-12-17%20at%203.24.17%20PM.png) + +Fill in your **Tenancy OCID**, **Default Region**, and **Environment**. Your **Default region** is the same as your home region listed in the **Tenancy Details** page. For **Environment** choose **OCI Instance**. + +Click **Save & Test** to return to the home dashboard. + +![Screen Shot 2018-12-17 at 3.25.33 PM](images/Screen_Shot_2019-02-08_at_10.19.56_AM.png) + +## Clean Up + +To remove the environment created by the Terraform script, run `terraform destroy` and pass in the same availability domain and dynamic group variables passed in during the apply step. + + + +## Next Steps + +Check out how to use the newly installed and configured plugin in our [Using Grafana with Oracle Cloud Infrastructure Data Source](docs/Using%20Grafana%20with%20the%20Oracle%20Cloud%20Infrastructure%20Data%20Source.md) walkthrough. \ No newline at end of file diff --git a/observability-and-analysis/telemetry/grafana/using.md b/observability-and-analysis/telemetry/grafana/using.md new file mode 100644 index 0000000..a00c9f0 --- /dev/null +++ b/observability-and-analysis/telemetry/grafana/using.md @@ -0,0 +1,84 @@ +# Using Grafana with the Oracle Cloud Infrastructure Data Source + +Here are a few tools for you to explore after installing and configuring the Oracle Cloud Infrastructure Data Source for Grafana. + +## Query Editor + +The query editor can be used to create graphs of your Oracle Cloud Infrastructure resources. + +On the Grafana Home Dashboard and click **New Dashboard**. + +![Screen Shot 2018-12-17 at 3.26.01 PM](images/Screen%20Shot%202018-12-17%20at%203.26.01%20PM.png) + +Choose **Graph** from the list of available dashboard types. + +![Screen Shot 2018-12-17 at 3.26.18 PM](images/Screen%20Shot%202018-12-17%20at%203.26.18%20PM.png) + +Click **Panel Title** and then **Edit** to add metrics to the dashboard.![Screen Shot 2018-12-17 at 3.26.26 PM](images/Screen%20Shot%202018-12-17%20at%203.26.26%20PM.png) + +Choose the appropriate **Region**, **Compartment**, **Namespace**, **Metric**, and **Dimension** from the list of available options. + +![Screen_Shot_2019-02-15_at_3.06.49_PM](images/Screen_Shot_2019-02-15_at_3.06.49_PM.png) + +Click the save icon to save your graph. + +At this stage, if the **metrics** pull down menu is not properly populating with options, you may need to navigate back to the OCI console add an additional matching rule to your Dynamic Group stating: `matching_rule = “ANY {instance.compartment.id = ‘${var.compartment_ocid}’}”`. After doing so, restart the Grafana server as the **sudo** user run `systemctl restart grafana-server` and reload the Grafana console. + +## Templating + +Templating provides the ability to dynamically switch the contents of graphs as seen in the example below. + +![templating](images/templating.gif) + +In order to configure templating, click on the gear icon in the upper right corner of the dashboard creation page from the previous step. This will take you to the **Settings** page. Click the **Variables** tab and then click the **Add variable** button. + +![Screen Shot 2019-01-11 at 3.10.49 PM](images/Screen%20Shot%202019-01-11%20at%203.10.49%20PM.png) + +Add the **region** variable to this page. Give the variable the name `region`, choose **OCI** from the list of data sources, and for **Query** enter `regions()`. + +![Screen Shot 2019-01-11 at 3.00.28 PM](images/Screen%20Shot%202019-01-11%20at%203.00.28%20PM.png) + +The page will load a preview of valuables available for that variable. Scroll down and click **Add** to create a template variable for regions. + +![Screen Shot 2019-01-13 at 11.11.50 AM](images/Screen%20Shot%202019-01-13%20at%2011.11.50%20AM.png) + +Repeat the process for the following OCI variables: + +| Name | Query | +| ----------- | ---------------------------------- | +| region | `regions()` | +| compartment | `compartments()` | +| namespace | `namespaces()` | +| metric | `metrics($namespace,$compartment)` | + +The final list of variables should look like this: + +![Screen Shot 2019-01-11 at 3.19.58 PM](images/Screen%20Shot%202019-01-11%20at%203.19.58%20PM.png) + +In order for these variables be available to be dynamically changed in your query, edit your existing query, and under **metrics** select the newly created variables for **region**, **compartment**, **namespace**, and **metric** as seen in the image below. + +![Screen Shot 2019-01-11 at 3.19.51 PM](images/Screen%20Shot%202019-01-11%20at%203.19.51%20PM.png) + +Choose the save icon to save your dashboard. + + + +### Dimensions + +Dimensions can be used to add specificity to your graphs. To use dimensions create a new graph or navigate to an existing one and click the **Metrics** tab. After selecting your variables click the **+** next to **Dimensions** and select one of the tag filters from the list. For example, select `availabilityDomain` from the list. Next, click **select tag value** and choose from the newly populated list of tag values. If you chose `availabilityDomain` as your tag filter, you should see tag values corresponding to the availability domains in which you currently have services provisioned, for example `US-ASHBURN-AD-1`. + + + +![Screen Shot 2019-02-14 at 12.03.26 PM](images/Screen Shot 2019-02-14 at 12.03.26 PM.png) + + + +## Custom Metrics and Namespaces + +Oracle Cloud Infrastructure allows for the creation of custom metrics namespaces, which can be used to ingest data from sources in addition to the native Oracle Cloud Infrastructure resources available by default. For example, an application could be instrumented to gather statistics about individual operations. The resource posting custom metrics must be able to authenticate to Oracle Cloud Infrastructure using either using the Oracle Cloud Infrastructure CLI authentication mentioned above or using [instance principals](https://docs.cloud.oracle.com/iaas/Content/Identity/Tasks/callingservicesfrominstances.htm). In the example below you can see the option to select `custom_namespace` from the **Namespace** drop down. + +![Screen_Shot_2019-02-15_at_2.53.37_PM](images/Screen_Shot_2019-02-15_at_2.53.37_PM.png) + +You can also see two custom metrics `CustomMetric` and `CustomMetric2` from the **Metric** dropdown. + +![Screen_Shot_2019-02-15_at_2.59.47_PM](images/Screen_Shot_2019-02-15_at_2.59.47_PM.png) \ No newline at end of file