Skip to content
This repository was archived by the owner on Sep 2, 2025. It is now read-only.

Commit a647064

Browse files
committed
Merge branch 'main' of github.com:splunk/private-o11y-docs
2 parents 82087ec + 58d5df8 commit a647064

38 files changed

+619
-888
lines changed

_includes/realm-note.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.. note:: Note about realms
1+
.. note:: About realms
22

33
A realm is a self-contained deployment of Splunk Observability Cloud in which your organization is hosted. Different realms have different API endpoints. For example, the endpoint for sending data in the ``us1`` realm is ``https://ingest.us1.signalfx.com``, while the endpoint for sending data in the ``eu0`` realm is ``https://ingest.eu0.signalfx.com``.
44

_templates/404.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,13 @@
5757
<script>
5858
const getBarConfig = () => {
5959
const customTheme = ``;
60+
const language = window.location.pathname.includes('/ja/') ? 'ja' : 'en';
6061

6162
return {
6263
customTheme,
6364
env: window.location.hostname.includes('splunk') ? 'prod' : 'dev',
64-
language: 'en',
65+
language: language,
66+
suiLanguage: language,
6567
layoutTemplate: "docsResultLayout",
6668
showSearchButton: false,
6769
searchBarRedirectUrl: 'https://docs.splunk.com/observability/en/search.html',

_templates/banner.html

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,9 @@
102102
<li class="nav-item">
103103
<a class="nav-link newnavbar" href="https://www.splunk.com/en_us/training/course-catalog.html?sort=Newest&filters=filterGroup4SplunkObservabilityCloud%2CfilterGroup4SplunkSyntheticMonitoring%2CfilterGroup4SplunkInfrastructureMonitoring%2CfilterGroup4SplunkITSI%2CfilterGroup4SplunkAPM%2CfilterGroup4SplunkOnCall%2CfilterGroup4SplunkRUM%2CfilterGroup4SplunkLogObserver%2CfilterGroup4SplunkInsights" target="_blank">Training</a>
104104
</li>
105+
<li class="nav-item nav-lang">
106+
<span class="lang" data-lang="en">EN</span> | <span class="lang" data-lang="ja">JA</span>
107+
</li>
105108
<li class="nav-item">
106109
<a class="nav-link newnavbar" href="https://www.splunk.com/en_us/download/infrastructure-monitoring.html" target="_blank" style="
107110
font-size: 12px;
@@ -118,6 +121,78 @@
118121
</ul>
119122
</div>
120123

124+
<style>
125+
.nav-lang{
126+
margin-top: 18px;
127+
color:darkgrey;
128+
}
129+
.active-lang {
130+
font-weight: bold;
131+
color: white !important;
132+
}
133+
.lang{
134+
cursor:pointer;
135+
}
136+
</style>
137+
<script>
138+
$(document).ready(function() {
139+
function setActiveLanguage() {
140+
var path = window.location.pathname;
141+
$('.lang').each(function() {
142+
var lang = $(this).data('lang');
143+
if (path.includes('/' + lang + '/')) {
144+
$(this).addClass('active-lang').css({
145+
"font-weight": "bold",
146+
"color": "red"
147+
});
148+
updateLinks(lang);
149+
} else {
150+
$(this).removeClass('active-lang').removeAttr('style');
151+
}
152+
});
153+
}
154+
155+
function constructNewPath(lang) {
156+
var currentPath = window.location.pathname;
157+
var pathSegments = currentPath.split('/');
158+
var langIndex = pathSegments.findIndex(segment => $('.lang').map(function() { return $(this).data('lang'); }).get().includes(segment));
159+
160+
if (langIndex > -1) {
161+
pathSegments[langIndex] = lang;
162+
} else {
163+
pathSegments.splice(1, 0, lang);
164+
}
165+
166+
return pathSegments.join('/');
167+
}
168+
169+
function updateLinks(lang) {
170+
var currentPath = window.location.pathname;
171+
var lang = "en";
172+
if(currentPath.includes('/ja/')) {
173+
lang = "ja";
174+
}
175+
176+
$("a.nav-link.newnavbar").each(function() {
177+
var href = $(this).attr("href");
178+
if(href && (href.includes('observability/en/') || href.includes('Observability/en/'))) {
179+
$(this).attr("href", href.replace('observability/en/', 'observability/' + lang + '/'));
180+
}
181+
});
182+
}
183+
184+
$('.lang').click(function() {
185+
var lang = $(this).data('lang');
186+
var newPath = constructNewPath(lang);
187+
window.location.pathname = newPath;
188+
189+
setActiveLanguage();
190+
});
191+
192+
setActiveLanguage();
193+
});
194+
</script>
195+
121196
<div id="mobileSideBar">
122197
{%- block sidebar2 %}{{ sidebar() }}{% endblock %}
123198
</div>

_templates/layout.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,13 @@
5959
<script>
6060
const getBarConfig = () => {
6161
const customTheme = ``;
62+
const language = window.location.pathname.includes('/ja/') ? 'ja' : 'en';
6263

6364
return {
6465
customTheme,
6566
env: window.location.hostname.includes('splunk') ? 'prod' : 'dev',
66-
language: 'en',
67+
language: language,
68+
suiLanguage: language,
6769
layoutTemplate: "docsResultLayout",
6870
showSearchButton: false,
6971
searchBarRedirectUrl: 'https://docs.splunk.com/observability/en/search.html',

_templates/search.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,16 @@
9595
eventCallback: parentCallback
9696
}
9797

98+
const language = window.location.pathname.includes('/ja/') ? 'ja' : 'en';
9899
return {
99100
customTheme,
100101
sortOptions,
101102
areas: "docs_observability,dev,main, docs",
102103
facets: "source_name_s,docProduct_s,docVersion_s",
103104
enableDateRangeFilter: true,
104105
env: window.location.hostname.includes('splunk') ? 'prod' : 'dev',
105-
language: "en",
106+
language: language,
107+
suiLanguage: language,
106108
layoutTemplate: "docsResultLayout",
107109
analytics,
108110
analyticsConfig: {

admin/authentication/allow-services.rst

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,13 @@ If your organization's networking security policies require you to individually
163163
164164
\*.<YOUR_REALM>.signalfx.com
165165
166-
If you're unable to allow all URLs as shown here, see :ref:`allow-domains`.
166+
You also need to allow the following URLs:
167+
168+
* packages.treasuredata.com
169+
* splunk.jfrog.io
170+
* jfrog-prod-use1-shared-virginia-main.s3.amazonaws.com
171+
172+
If you're unable to allow all the URLs listed in this section, see :ref:`allow-domains`.
167173

168174
.. _allow-domains:
169175

@@ -202,5 +208,6 @@ If you're unable to allow all URLs as described in :ref:`allow-urls`, ensure tha
202208
203209
# For DEB/RPM collector packages
204210
splunk.jfrog.io
211+
jfrog-prod-use1-shared-virginia-main.s3.amazonaws.com
205212
206213
.. note:: For more information, see the :new-page:`Endpoint Summary <https://dev.splunk.com/observability/docs/apibasics/api_list>` topic in the Observability Cloud Developer Guide.

apm/set-up-apm/apm-gdi.rst

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,16 @@ In the following table, follow the instrumentation steps for the language that e
121121
* - PHP
122122
- OpenTelemetry instrumentation for PHP
123123
- :ref:`get-started-php`
124+
125+
* - Rust
126+
- OpenTelemetry instrumentation for Rust
127+
- :ref:`get-started-rust`
124128

125-
After you instrument your applications, you're ready to verify that your data is coming in.
129+
* - Erlang
130+
- OpenTelemetry instrumentation for Erlang
131+
- :ref:`get-started-erlang`
126132

127-
.. note:: To instrument applications or services written in languages other than the ones listed here, see :ref:`apm-instrumentation-other-langs`.
133+
After you instrument your applications, you're ready to verify that your data is coming in.
128134

129135
.. _verify-apm-data:
130136

gdi/get-data-in/application/application.rst

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ Instrument back-end applications to send spans to Splunk APM
1717
Instrument a Python application TOGGLE <python/get-started>
1818
Instrument a Ruby application TOGGLE <ruby/get-started>
1919
Instrument a PHP application TOGGLE <php/get-started>
20-
Instrument applications written in other programming languages <other-languages>
20+
Instrument a Rust application TOGGLE <rust/get-started>
21+
Instrument an Erlang application TOGGLE <erlang/get-started>
2122
Send spans from the Istio service mesh <istio/istio>
2223

2324
You can instrument your back-end services and applications to send metrics and traces to Splunk Observability Cloud.
@@ -89,14 +90,11 @@ You can instrument applications in each of these languages using official Splunk
8990
- :ref:`Python <get-started-python>`
9091
- :ref:`Ruby <get-started-ruby>`
9192
- :ref:`PHP <get-started-php>`
93+
- :ref:`Rust <get-started-rust>`
94+
- :ref:`Erlang <get-started-erlang>`
9295

9396
To send spans from the Istio service mesh, see :ref:`get-started-istio`.
9497

95-
You can also send traces from applications written in languages for which Splunk instrumentation isn't available:
96-
97-
- :ref:`Erlang <apm-instrumentation-other-langs>`
98-
- :ref:`Rust <apm-instrumentation-other-langs>`
99-
10098
To learn more about the data collected by Splunk Observability Cloud, see:
10199

102100
- :ref:`data-model`
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
.. _get-started-erlang:
2+
3+
*****************************************************************
4+
Instrument Erlang applications for Splunk Observability Cloud
5+
*****************************************************************
6+
7+
.. meta::
8+
:description: Get started with instrumenting your Erlang applications for Splunk Observability Cloud.
9+
10+
.. toctree::
11+
:hidden:
12+
13+
Requirements <requirements>
14+
Instrument your Erlang application <instrument-erlang>
15+
16+
You can send application traces and metrics from your Erlang applications to Splunk Observability Cloud using the OpenTelemetry instrumentation for Erlang.
17+
18+
To instrument your Erlang applications, follow these steps:
19+
20+
#. Make sure you've met the prerequisites. See :ref:`requirements-erlang`
21+
#. Instrument your application. See :ref:`instrument-erlang`
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
.. _instrument-erlang:
2+
3+
*************************************************************************
4+
Instrument your Erlang application for Splunk Observability Cloud
5+
*************************************************************************
6+
7+
.. meta::
8+
:description: Learn how to instrument your Erlang application using the OpenTelemetry instrumentation for Erlang and send your application traces to Splunk Observability Cloud.
9+
10+
You can send traces from your Erlang applications using the OpenTelemetry instrumentation for Erlang. To get started, follow these instructions.
11+
12+
.. _erlang-add-dependencies:
13+
14+
1. Add the required dependencies or packages
15+
==================================================
16+
17+
To instrument your application for Splunk Observability Cloud, you need to generate traces and spans that follow the OpenTelemetry format and semantic conventions. Add the required OpenTelemetry dependencies to your project, including gRPC communication libraries for communicating with the Splunk OpenTelemetry Collector.
18+
19+
Add the OpenTelemetry packages to the list of dependencies in your rebar.config file:
20+
21+
.. code-block:: Erlang
22+
23+
%% rebar.config file
24+
25+
{deps, [opentelemetry_api
26+
opentelemetry,
27+
opentelemetry_exporter]}.
28+
29+
You also must add them to the ``Applications`` section, together with gRPC libraries:
30+
31+
.. code-block:: erlang
32+
33+
%% app.src file
34+
35+
{applications,
36+
[kernel,
37+
stdlib,
38+
opentelemetry_api,
39+
opentelemetry,
40+
opentelemetry_exporter
41+
]},
42+
43+
.. _erlang-init-tracer:
44+
45+
2. Initialize the OpenTelemetry tracer
46+
=================================================
47+
48+
In your application code, initialize the OpenTelemetry library and tracer like in the following example:
49+
50+
.. code-block:: erlang
51+
52+
-module(otel_getting_started).
53+
54+
-export([hello/0]).
55+
56+
-include_lib("opentelemetry_api/include/otel_tracer.hrl").
57+
58+
Erlang automatically initializes the tracer.
59+
60+
.. _erlang-generate-spans:
61+
62+
3. Generate spans for your application
63+
==================================================
64+
65+
In your Erlang application code, create spans for the operations you want to track.
66+
67+
The following example shows how to create spans that have attributes or tags:
68+
69+
.. code-block:: erlang
70+
71+
hello() ->
72+
%% start an active span and run a local function
73+
?with_span(<<"operation">>, #{}, fun nice_operation/1).
74+
75+
nice_operation(_SpanCtx) ->
76+
?add_event(<<"Nice operation!">>, [{<<"bogons">>, 100}]),
77+
?set_attributes([{another_key, <<"yes">>}]),
78+
79+
%% start an active span and run an anonymous function
80+
?with_span(<<"Sub operation...">>, #{},
81+
fun(_ChildSpanCtx) ->
82+
?set_attributes([{lemons_key, <<"five">>}]),
83+
?add_event(<<"Sub span event!">>, [])
84+
end).
85+
86+
.. _export-directly-to-olly-cloud-erlang:
87+
88+
Send data directly to Splunk Observability Cloud
89+
==================================================
90+
91+
By default, all telemetry goes to the local instance of the Splunk Distribution of OpenTelemetry Collector.
92+
93+
If you need to send data directly to Splunk Observability Cloud, set the following environment variables. When instrumenting Rust applications or services you might need to read the values of the environment variables first.
94+
95+
.. code-block:: shell
96+
97+
OTEL_EXPORTER_OTLP_PROTOCOL=grpc
98+
OTEL_EXPORTER_OTLP_TRACES_HEADERS=x-sf-token=<access_token>
99+
OTEL_EXPORTER_OTLP_ENDPOINT=https://ingest.<realm>.signalfx.com
100+
101+
To obtain an access token, see :ref:`admin-api-access-tokens`.
102+
103+
To find your Splunk realm, see :ref:`Note about realms <about-realms>`.
104+
105+
.. note:: For more information on the ingest API endpoints, see :new-page:`Send APM traces <https://dev.splunk.com/observability/docs/apm/send_traces/>`.

0 commit comments

Comments
 (0)