diff --git a/content/en/s4r/03-apm.md b/content/en/s4r/03-apm.md index da998fa33c..46222a9fb7 100644 --- a/content/en/s4r/03-apm.md +++ b/content/en/s4r/03-apm.md @@ -82,4 +82,4 @@ Now I’m starting to get a good picture of what’s going on. This checkout pro I’d like to look at the logs to see precisely what the error is. -{{% /notice %}} \ No newline at end of file +{{% /notice %}} diff --git a/content/en/s4r/15-logs-link.md b/content/en/s4r/15-logs-link.md index 9a2507ef4f..3b186bcd44 100644 --- a/content/en/s4r/15-logs-link.md +++ b/content/en/s4r/15-logs-link.md @@ -12,4 +12,4 @@ weight: 30 We are federating logs across multiple Splunk instances and indexes, which can be extremely useful when I have logs in multiple places – on-prem or in the cloud. Let’s navigate to the linked logs. -{{% /notice %}} \ No newline at end of file +{{% /notice %}} diff --git a/content/en/s4r/16-logs.md b/content/en/s4r/16-logs.md index 73b5b580f2..85992596f8 100644 --- a/content/en/s4r/16-logs.md +++ b/content/en/s4r/16-logs.md @@ -11,4 +11,4 @@ weight: 31 {{% notice style="blue" title="Say" icon="user" %}} I can now see the log entries coming from this specific trace. -{{% /notice %}} \ No newline at end of file +{{% /notice %}} diff --git a/content/en/s4r/17-filter-logs.md b/content/en/s4r/17-filter-logs.md index f98b8ef821..904aaa58df 100644 --- a/content/en/s4r/17-filter-logs.md +++ b/content/en/s4r/17-filter-logs.md @@ -11,4 +11,4 @@ weight: 32 {{% notice style="blue" title="Say" icon="user" %}} Log Observer gives me an easy way to aggregate and filter on the logs I need to. Here we are just filtering on the log entries that are errors. -{{% /notice %}} \ No newline at end of file +{{% /notice %}} diff --git a/content/en/s4r/19-synthetics.md b/content/en/s4r/19-synthetics.md index c99cb25760..d5603c833e 100644 --- a/content/en/s4r/19-synthetics.md +++ b/content/en/s4r/19-synthetics.md @@ -3,12 +3,12 @@ title: 19. Synthetics weight: 40 --- -## Use the Splunk Observability Suite to check the perfomance of your Website/API Endpoint -So far we have have tested the perfomance of our Website by visting and running manual testscenario's to see how our web site perfomed. +## Use the Splunk Observability Suite to check the perfomance of your Website/API Endpoint -But what if we didn't have to wait for that, and could instead test the frontend whenever we want, in both production and pre-production? This is where Synthetics comes in. +So far we have have tested the perfomance of our Website by visting and running manual testscenario's to see how our web site perfomed. + +But what if we didn't have to wait for that, and could instead test the frontend whenever we want, in both production and pre-production? This is where Synthetics comes in. ![Synthetics overview](../images/SyntheticTests.png?width=50vw) -
As part of this excersise we will clone an exsting Synthetic Test and configure it to test against your website, and have it run automaticly. as part of this excercise we will also set up a detector that will will allow you to be automaticly informed/alerted if the perfomance of your webite is suboptimal. diff --git a/content/en/s4r/20-browser-test.md b/content/en/s4r/20-browser-test.md index 830fb1eb2c..f6f7626383 100644 --- a/content/en/s4r/20-browser-test.md +++ b/content/en/s4r/20-browser-test.md @@ -12,4 +12,4 @@ weight: 41 Synthetics can test uptime and APIs, but in this example let's look at a browser test, where we are emulating real user behavior of shopping and checking out on the desktop site for my retail application. We see the details of this test run, what the front end looks like visually, as well as a waterfall of all requests broken down by URL. Because this is a Synthetic test, we can define the test frequency, device type, and locations, as well as the critical user transactions that we want to track. -{{% /notice %}} \ No newline at end of file +{{% /notice %}} diff --git a/content/en/s4r/21-test-failure.md b/content/en/s4r/21-test-failure.md index 3a6ef4f36e..8c14d29a1a 100644 --- a/content/en/s4r/21-test-failure.md +++ b/content/en/s4r/21-test-failure.md @@ -10,4 +10,4 @@ weight: 42 {{% notice style="blue" title="Say" icon="user" %}} We see that this test run failed because it never got to confirm the Order ID. Looking at the requests in the checkout, we see a long POST request to checkout with an APM link. Familiar, right? -{{% /notice %}} \ No newline at end of file +{{% /notice %}} diff --git a/content/en/s4r/23-wrapup.md b/content/en/s4r/23-wrapup.md index b623c7456a..2b1b577f27 100644 --- a/content/en/s4r/23-wrapup.md +++ b/content/en/s4r/23-wrapup.md @@ -14,11 +14,11 @@ This wraps up the Splunk for Rookies Workshop of the Splunk Observability Cloud. Today we didn’t even talk about the power of the rest of Splunk Observability Cloud, such as: * Infrastructure monitoring, which shows how our infrastructure is behaving -- hosts, kubernetes, and applications via Dashboards, Navigators and Detectors -* More about Synthetics, which can simulate web and mobile traffic and report on application behavior and potential areas for improvement +* More about Synthetics, which can simulate web and mobile traffic and report on application behavior and potential areas for improvement. -{{% /notice %}} \ No newline at end of file +{{% /notice %}} diff --git a/content/en/s4r/setup.md b/content/en/s4r/setup.md deleted file mode 100644 index 8588eb5d45..0000000000 --- a/content/en/s4r/setup.md +++ /dev/null @@ -1,151 +0,0 @@ ---- -title: Environment Setup -weight: 60 ---- - -Notes for the Splunk Show team on how the environment is configured. - -## GitHub Repository - -[https://github.com/splunk/o11y-field-demos/tree/main/o11y-datagens/online-boutique](https://github.com/splunk/o11y-field-demos/tree/main/o11y-datagens/online-boutique) - -## Setup EC2 Instance - -Run `install.sh` to install all the pre-requisites (K3s, Helm, etc.) - -## Install cert-manager - -``` bash -helm repo add jetstack https://charts.jetstack.io && helm repo update -``` - -``` bash -kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.12.4/cert-manager.crds.yaml -``` - -``` bash -helm install \ - cert-manager jetstack/cert-manager \ - --namespace cert-manager \ - --create-namespace \ - --version v1.12.4 \ - --set prometheus.enabled=false \ - --set webhook.timeoutSeconds=4 -``` - -### Configure Issuer - -``` yaml -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: letsencrypt-prod -spec: - acme: - # The ACME server URL - server: https://acme-v02.api.letsencrypt.org/directory - # Email address used for ACME registration - email: user@example.com - # Name of a secret used to store the ACME account private key - privateKeySecretRef: - name: letsencrypt-prod - # Enable the HTTP-01 challenge provider - solvers: - - http01: - ingress: - ingressClassName: traefik -``` - -### Deploy Ingress Resource - -``` yaml -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: frontend - annotations: - cert-manager.io/cluster-issuer: "letsencrypt-prod" - traefik.ingress.kubernetes.io/custom-response-headers: "Access-Control-Allow-Origin:*||Access-Control-Allow-Methods:GET,POST,OPTIONS||Access-Control-Allow-Headers:DNT,User-Age -nt,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range||Access-Control-Expose-Headers:Content-Length,Content-Range" - ingress.kubernetes.io/custom-response-headers: "Access-Control-Allow-Origin:*||Access-Control-Allow-Methods:GET,POST,OPTIONS||Access-Control-Allow-Headers:DNT,User-Agent,X-Req -uested-With,If-Modified-Since,Cache-Control,Content-Type,Range||Access-Control-Expose-Headers:Content-Length,Content-Range" -spec: - ingressClassName: traefik - tls: - - hosts: - - example.example.com - secretName: quickstart-example-tls - rules: - - host: example.example.com - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: frontend - port: - number: 80 -``` - -## Deploy Splunk OpenTelemetry Collector - -### Frontend Demo Collector - -Change into the `opentelemetry-collector` directory and edit the `frontend-setup-eu.sh` or `frontend-setup-us.sh` scripts and change **** and **** to your own tokens. - -Make sure `otel-base.yaml` and `splunk-defaults.yaml` are in the same directory as the setup script. - -### Profiling Demo Collector - -Change into the `opentelemetry-collector` directory and edit the `profiling-setup-eu.sh` or `profiling-setup-us.sh` scripts and change **** and **** to your own tokens. - -Make sure `otel-base.yaml` and `splunk-defaults.yaml` are in the same directory as the setup script. - -## Deploy the Online Boutique - -### Frontend Demo - -Change into the `frontend-demo` directory and edit `frontend-eu-deployment.yaml` and `frontend-us-deployment.yaml` and search for **** and replace with a valid RUM Access Token for the respective Observability Cloud Org. - -Apply the deployment files into their respective Observability Cloud Orgs: - -{{< tabs >}} -{{% tab title="EU Splunk Show" %}} - -```bash -kubectl apply -f frontend-eu-deployment.yaml -``` - -{{% /tab %}} -{{% tab title="US Splunk Show" %}} - -```bash -kubectl apply -f frontend-us-deployment.yaml -``` - -{{% /tab %}} -{{< /tabs >}} - -### Profiling Demo - -Change into the `profiling-demo` directory and edit `profiling-eu-deployment.yaml` and `profiling-us-deployment.yaml` and search for **** and replace with a valid RUM Access Token for the respective Observability Cloud Org. - -Apply the deployment files into their respective Observability Cloud Orgs: - -{{< tabs >}} -{{% tab title="EU Splunk Show" %}} - -```bash -kubectl apply -f frontend-eu-deployment.yaml -``` - -{{% /tab %}} -{{% tab title="US Splunk Show" %}} - -```bash -kubectl apply -f frontend-us-deployment.yaml -``` - -{{% /tab %}} -{{< /tabs >}}