Skip to content

Commit e60eb45

Browse files
sumoanemaJV0812kimsauce
authored
SUMO-242752 | Changes in IIS otel app to add metric collection and dashboards (#4579)
* SUMO-242752 | Changes in IIS otel app to add metric collection and dashboards * Update iis-10-opentelemetry.md * Update docs/integrations/web-servers/opentelemetry/iis-10-opentelemetry.md * Apply suggestions from code review Co-authored-by: Kim (Sumo Logic) <[email protected]> Co-authored-by: Jagadisha V <[email protected]> --------- Co-authored-by: Jagadisha V <[email protected]> Co-authored-by: Kim (Sumo Logic) <[email protected]>
1 parent de76638 commit e60eb45

File tree

1 file changed

+90
-7
lines changed

1 file changed

+90
-7
lines changed

docs/integrations/web-servers/opentelemetry/iis-10-opentelemetry.md

Lines changed: 90 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,23 @@ import TabItem from '@theme/TabItem';
1111

1212
<img src={useBaseUrl('img/integrations/microsoft-azure/microsoft_iis_10.png')} alt="thumbnail icon" width="130"/> <img src={useBaseUrl('img/send-data/otel-color.svg')} alt="Thumbnail icon" width="45"/>
1313

14-
The [Internet Information Services](https://learn.microsoft.com/en-gb/iis/get-started/introduction-to-iis/introduction-to-iis-architecture) (IIS) 10 app is a logs app that helps you monitor your IIS web servers' availability. Preconfigured dashboards provide insight into application pools, ASP.NET applications, requests, latency, visitor locations, visitor access types, traffic patterns, errors, web server operations, and access from known malicious sources.
14+
The [Internet Information Services](https://learn.microsoft.com/en-gb/iis/get-started/introduction-to-iis/introduction-to-iis-architecture) (IIS) 10 app is a logs and metrics app designed to monitor the availability and performance of your IIS web servers. Preconfigured dashboards and searches provide insight into application pools, ASP.NET applications, requests, latency, visitor locations, visitor access types, traffic patterns, errors, web server operations, and access from known malicious sources.
1515

1616
IIS logs are sent to Sumo Logic through OpenTelemetry [filelog receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver).
1717

18+
IIS metrics are sent to Sumo Logic through OpenTelemetry through [windowsperfcountersreceiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/windowsperfcountersreceiver). This receiver captures the configured system, application, or custom performance counter data from the Windows registry using the [PDH interface](https://docs.microsoft.com/en-us/windows/win32/perfctrs/using-the-pdh-functions-to-consume-counter-data). It is based on the [Telegraf Windows Performance Counters Input Plugin](https://github.com/influxdata/telegraf/tree/master/plugins/inputs/win_perf_counters).
19+
1820
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/IIS-OpenTelemetry/IIS-Schematics.png' alt="Schematics" />
1921

2022
## Fields creation in Sumo Logic for IIS
2123

2224
Following are the [Fields](/docs/manage/fields/) which will be created as part of IIS App install if not already present.
2325

24-
- `webengine.cluster.name`. User configured.Enter a name to uniquely identify your IIS web server cluster. This web server cluster name will be shown in the Sumo Logic dashboards.
25-
- `webengine.system`. Has fixed value of **iis**
2626
- `sumo.datasource`. Has fixed value of **iis**.
27+
- `deployment.environment`. User configured. This is the deployment environment where the IIS cluster resides. For example: `dev`, `prod`, or `qa`.
28+
- `webengine.cluster.name`. User configured. Enter a name to uniquely identify your IIS web server cluster. This web server cluster name will be shown in the Sumo Logic dashboards.
29+
- `webengine.system`. Has fixed value of **iis**.
30+
- `webengine.node.name`. Holds the value of the Fully Qualified Domain Name (FQDN) of the machine from which the OpenTelemetry collector is collecting logs and metrics.
2731

2832
## Prerequisites
2933

@@ -104,9 +108,11 @@ import SetupColl from '../../../reuse/apps/opentelemetry/set-up-collector.md';
104108

105109
In this step, you will configure the yaml required for IIS Collection.
106110

107-
Path of the different log file configured to capture IIS logs is needed to be given here (see [Prerequisites](#prerequisites)).
111+
The path of the log file configured to capture IIS logs is needed to be given here, refer to [Prerequisites](#prerequisites).
112+
113+
Metrics for IIS app are collected through windows perf counters. You can specify the **Collection Interval** to specify at what interval should the metrics be scrapped. You can add any custom fields which you want to tag along with the data ingested in Sumo Logic.
108114

109-
You can add any custom fields which you want to tag along with the data ingested in Sumo. Click on the **Download YAML File** button to get the yaml file.
115+
Click on the **Download YAML File** button to get the yaml file.
110116

111117
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/IIS-OpenTelemetry/IIS-YAML.png' style={{border:'1px solid gray'}} alt="YAML" />
112118

@@ -166,25 +172,71 @@ import LogsOutro from '../../../reuse/apps/opentelemetry/send-logs-outro.md';
166172

167173
<LogsOutro/>
168174

175+
:::note
176+
A warning message will be printed if any one of the specified performance counters cannot be loaded on startup. The application will not fail fast with this warning. It is expected that some performance counters may not exist on some systems due to different OS configuration.
177+
:::
178+
169179
## Sample log messages
170180

171181
```sql title="Sample Log Message - Non-Kubernetes environments"
172182
2023-01-13 10:56:55 10.0.0.111 GET / ProgramID=236 443 - 207.235.176.5 Mozilla/5.0+(compatible;+Nimbostratus-Bot/v1.3.2;+http://cloudsystemnetworks.com) http://www.google.com/url?sa=t&rct=j&q=anomaly%20detection&source=web&cd=4 304 11 1236 70
173183
```
174184

175-
## Sample queries
185+
## Sample metrics
186+
```
187+
{
188+
"queryId": "A",
189+
"_source": "iis/windowsperfcounters",
190+
"_metricId": "UHWuWs-fdl2-SSVRh6Yfww",
191+
"webengine.node.name": "EC2AMAZ-ENUFFVK",
192+
"_sourceName": "iis",
193+
"host.group": "anemawiniis",
194+
"os.type": "windows",
195+
"webengine.cluster": "test",
196+
"sumo.datasource": "iis",
197+
"instance": "*",
198+
"_sourceCategory": "OTC Metric Input",
199+
"deployment.environment": "anemawiniis",
200+
"_contentType": "win_password",
201+
"host.name": "EC2AMAZ-ENUFFVK",
202+
"metric": "win.aspnet.Request.Execution.Time",
203+
"_collectorId": "00005AF310C7F19E",
204+
"_sourceId": "0000000000000000",
205+
"webengine.system": "iis",
206+
"_sourceHost": "EC2AMAZ-ENUFFVK",
207+
"_collector": "EC2AMAZ-ENUFFVK",
208+
"max": 0,
209+
"min": 0,
210+
"avg": 0,
211+
"sum": 0,
212+
"latest": 0,
213+
"count": 1
214+
}
215+
```
216+
217+
## Sample log query
176218

177219
This sample Query is from the **IIS - Overview** > **Visitor Location** panel.
178220

179221
```sql title="Query String"
180222
" %\"sumo.datasource\"=iis %\"webengine.cluster.name\"=* | json \"log\" as _rawlog nodrop \n| if (isEmpty(_rawlog), _raw, _rawlog) as iis_log_message\n| parse regex field=iis_log_message \"(?<server_ip>\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}) (?<method>\\S+?) (?<cs_uri_stem>\\S+?) (?<cs_uri_query>\\S+?) (?<s_port>\\S+?) (?<cs_username>\\S+?) (?<c_ip>\\S+?) (?<cs_User_Agent>\\S+?) (?<cs_referer>\\S+?) (?<sc_status>\\S+?) (?<sc_substatus>\\S+?) (?<sc_win32_status>\\S+?) (?<time_taken>\\S+?)$\"\n| count by c_ip\n| lookup latitude, longitude, country_name from geo://location on ip=c_ip\n| where !isNull(latitude)"
181223
```
182224

225+
## Sample metric query
226+
227+
```sql title="Running Application pool"
228+
sumo.datasource=iis deployment.environment=* webengine.cluster.name=* webengine.node.name=* instance=* metric=win.app.pool.was.Current.Application.Pool.State | filter latest = 3 | count
229+
```
230+
183231
## Viewing IIS dashboards
184232

185233
### Overview
186234

187-
The **IIS - Overview** dashboard provides a high-level view of the integrity of your Microsoft Internet Information Services (IIS) infrastructure. Dashboard panels display visual graphs and detailed information on IIS versions, platforms, and log formats. Panels also show visitor geographic locations, top app requests. OS platforms, response status, response times, and client and server errors.
235+
The **IIS - Overview** dashboard provides a high-level view of the performance and integrity of your Microsoft Internet Information Services (IIS) infrastructure. Dashboard panels display visual graphs and detailed information on IIS versions, platforms, and log formats. Panels also show visitor geographic locations, top app requests. OS platforms, response status, response times, and client and server errors.
236+
237+
Use this dashboard to:
238+
* Get a high-level overview of sites, requests, connect, cache, data received and sent, queue, application pool, client location, client platforms, error and threats identified.
239+
* Drill Down to specific use cases by clicking on specific panels of interest.
188240

189241
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/IIS-OpenTelemetry/IIS-Overview.png' alt="Overview" />
190242

@@ -235,3 +287,34 @@ The **IIS - Visitor Locations** dashboard provides a high-level view of Nginx vi
235287
The **IIS - Visitor Traffic Insight** Dashboard provides detailed information on the top documents accessed, top referrers, top search terms from popular search engines, and the media types served.
236288

237289
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/IIS-OpenTelemetry/IIS-Visitor-Traffic-Insights.png' alt="Visitor Traffic Insights" />
290+
291+
### Application Pool
292+
293+
The **IIS - Application Pool** dashboard provides a high-level view of Application Pool State, Information and Worker Process Metrics.
294+
295+
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/IIS-OpenTelemetry/IIS-Application-Pool.png' alt="IIS-Application-Pool" />
296+
297+
### ASP.NET
298+
299+
The **IIS - ASP.NET** dashboard provides a high-level view of the ASP.NET global performance counters. This dashboard helps you to analyse the state server sessions, monitor applications performance, and understand the request execution and wait time.
300+
301+
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/IIS-OpenTelemetry/IIS-ASP.NET.png' alt="IIS-ASP.NET" />
302+
303+
### ASP.NET Applications
304+
305+
The **IIS - ASP.NET Applications** dashboard provides a high-level view of the ASP.NET application performance counters. This dashboard helps you to monitor compilations, errors, cache, requests executing, requests in application queue, pipeline instance count, and output cache.
306+
307+
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/IIS-OpenTelemetry/IIS-ASP.NET-Applications.png' alt="IIS-ASP.NET-Applications" />
308+
309+
### Cache Performance
310+
311+
The **IIS - Cache Performance** dashboard provides a high-level view of the the Web Service Cache Counters object includes cache counters specific to the World Wide Web Publishing Service. This dashboard helps you to monitor the output cache, cache memory, file cache, and URI cache.
312+
313+
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/IIS-OpenTelemetry/IIS-Cache-Performance.png' alt="IIS-Cache-Performance" />
314+
315+
### Web Service
316+
317+
The **IIS - Web Service** dashboard provides a high-level view of the Web Service object includes counters specific to the World Wide Web Publishing Service. This dashboard helps you to monitor the total site, connections, site uptime, method, and miscellaneous.
318+
319+
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/IIS-OpenTelemetry/IIS-Web-Service.png' alt="IIS-Web-Service" />
320+

0 commit comments

Comments
 (0)