fastly 17.1.0 → 17.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/docs/DomainInspectorMeasurements.md +1 -0
- data/docs/LoggingDatadogAdditional.md +1 -1
- data/docs/LoggingDatadogApi.md +2 -2
- data/docs/LoggingDatadogResponse.md +1 -1
- data/docs/RealtimeEntryAggregated.md +15 -0
- data/docs/RealtimeEntryDatacenter.md +15 -0
- data/docs/RealtimeMeasurements.md +15 -0
- data/docs/Results.md +15 -0
- data/docs/Values.md +1 -0
- data/lib/fastly/api/logging_datadog_api.rb +4 -4
- data/lib/fastly/models/domain_inspector_measurements.rb +14 -4
- data/lib/fastly/models/logging_datadog_additional.rb +1 -1
- data/lib/fastly/models/logging_datadog_response.rb +1 -1
- data/lib/fastly/models/realtime_entry_aggregated.rb +154 -4
- data/lib/fastly/models/realtime_entry_datacenter.rb +154 -4
- data/lib/fastly/models/realtime_measurements.rb +154 -4
- data/lib/fastly/models/results.rb +151 -1
- data/lib/fastly/models/values.rb +14 -4
- data/lib/fastly/version.rb +1 -1
- data/sig.json +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9e61fc5c08e52822fb2f882d1a4d2cf781325063d58d768095b8080d49a34ccd
|
|
4
|
+
data.tar.gz: 3762ea37014905edac4005d285d5e6f1bce1d5281b5dea31c7840e40dd876cbf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d7eb0516ec411da1545cc31d745ae70f89295fab46d862133a372d95702a3fb45b67a66721da13a572c2e6a714fa329d3226c59ee348157a00c86909c4733ce5
|
|
7
|
+
data.tar.gz: ccb4020be7af591bb9409a92712a87c1bdefa920835a6d0e5b4f64f9559521e1f034bd8a63ca7339ddad3eef72a1b64a1a2d01d3985eb2981397b68a38059fdc
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [v17.2.0](https://github.com/fastly/fastly-ruby/releases/tag/release/v17.2.0) (2026-09-27)
|
|
4
|
+
|
|
5
|
+
**Bug fixes:**
|
|
6
|
+
|
|
7
|
+
- fix(logging_datadog): Correct `request_time_ms` in the default Datadog log format to report elapsed time in milliseconds as a number, rather than microseconds as a string.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
**Enhancements:**
|
|
11
|
+
|
|
12
|
+
- feat(historical, realtime): Add new metric `bot_edge_requests_headless_count`, the number of edge requests where a headless bot was detected.
|
|
13
|
+
- feat(historical, realtime, domain_inspector_historical, domain_inspector_realtime): Add new metric `status_499`, the number of responses sent with status code 499 (Client Disconnected).
|
|
14
|
+
- feat(historical, realtime): Add new metrics `imgopto_input_image_bytes` and `imgopto_output_image_bytes`, describing the total image bytes before and after transformation by the Fastly Image Optimizer.
|
|
15
|
+
- feat(historical, realtime): Add new metric `arc_requests`, the number of requests received by AI Runtime Control.
|
|
16
|
+
- feat(historical, realtime): Add new DDoS protection challenge metrics: `ddos_challenge_complete_tokens_checked`, `ddos_challenge_complete_tokens_passed`, `ddos_challenge_complete_tokens_failed`, `ddos_challenge_starts`, `ddos_challenge_complete_tokens_issued`, `ddos_challenges_issued`, `ddos_challenges_succeeded`, `ddos_challenges_failed`, `ddos_challenges_pats_issued`, and `ddos_challenges_pats_succeeded`.
|
|
17
|
+
|
|
18
|
+
|
|
3
19
|
## [v17.1.0](https://github.com/fastly/fastly-ruby/releases/tag/release/v17.1.0) (2026-08-18)
|
|
4
20
|
|
|
5
21
|
**Enhancements:**
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -8,7 +8,7 @@ A Ruby client library for interacting with most facets of the [Fastly API](https
|
|
|
8
8
|
To install via RubyGems, add the following to your project's `Gemfile`:
|
|
9
9
|
|
|
10
10
|
```ruby
|
|
11
|
-
gem 'fastly', '~> 17.
|
|
11
|
+
gem 'fastly', '~> 17.2.0'
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
Then run `bundle install`.
|
|
@@ -137,6 +137,7 @@
|
|
|
137
137
|
| **tls_v11** | **Integer** | Number of requests received over TLS 1.1. | [optional] |
|
|
138
138
|
| **tls_v12** | **Integer** | Number of requests received over TLS 1.2. | [optional] |
|
|
139
139
|
| **tls_v13** | **Integer** | Number of requests received over TLS 1.3. | [optional] |
|
|
140
|
+
| **status_499** | **Integer** | Number of responses sent with status code 499 (Client Disconnected). | [optional] |
|
|
140
141
|
|
|
141
142
|
[[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)
|
|
142
143
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **region** | **String** | The region that log data will be sent to. | [optional][default to 'US'] |
|
|
8
|
-
| **format** | **String** | A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. | [optional][default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\"
|
|
8
|
+
| **format** | **String** | A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. | [optional][default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\": %{time.elapsed.msec}V,\"method\":\"%m\",\"url\":\"%{json.escape(req.url)}V\",\"useragent\":\"%{User-Agent}i\",\"referer\":\"%{Referer}i\",\"protocol\":\"%H\",\"request_x_forwarded_for\":\"%{X-Forwarded-For}i\",\"status_code\":\"%s\"},\"network\":{\"client\":{\"ip\":\"%h\",\"name\":\"%{client.as.name}V\",\"number\":\"%{client.as.number}V\",\"connection_speed\":\"%{client.geo.conn_speed}V\"},\"destination\":{\"ip\":\"%A\"},\"geoip\":{\"geo_city\":\"%{client.geo.city.utf8}V\",\"geo_country_code\":\"%{client.geo.country_code}V\",\"geo_continent_code\":\"%{client.geo.continent_code}V\",\"geo_region\":\"%{client.geo.region}V\"},\"bytes_written\":\"%B\",\"bytes_read\":\"%{req.body_bytes_read}V\"},\"host\":\"%{Fastly-Orig-Host}i\",\"origin_host\":\"%v\",\"is_ipv6\":\"%{if(req.is_ipv6, \\\"true\\\", \\\"false\\\")}V\",\"is_tls\":\"%{if(req.is_ssl, \\\"true\\\", \\\"false\\\")}V\",\"tls_client_protocol\":\"%{json.escape(tls.client.protocol)}V\",\"tls_client_servername\":\"%{json.escape(tls.client.servername)}V\",\"tls_client_cipher\":\"%{json.escape(tls.client.cipher)}V\",\"tls_client_cipher_sha\":\"%{json.escape(tls.client.ciphers_sha)}V\",\"tls_client_tlsexts_sha\":\"%{json.escape(tls.client.tlsexts_sha)}V\",\"is_h2\":\"%{if(fastly_info.is_h2, \\\"true\\\", \\\"false\\\")}V\",\"is_h2_push\":\"%{if(fastly_info.h2.is_push, \\\"true\\\", \\\"false\\\")}V\",\"h2_stream_id\":\"%{fastly_info.h2.stream_id}V\",\"request_accept_content\":\"%{Accept}i\",\"request_accept_language\":\"%{Accept-Language}i\",\"request_accept_encoding\":\"%{Accept-Encoding}i\",\"request_accept_charset\":\"%{Accept-Charset}i\",\"request_connection\":\"%{Connection}i\",\"request_dnt\":\"%{DNT}i\",\"request_forwarded\":\"%{Forwarded}i\",\"request_via\":\"%{Via}i\",\"request_cache_control\":\"%{Cache-Control}i\",\"request_x_requested_with\":\"%{X-Requested-With}i\",\"request_x_att_device_id\":\"%{X-ATT-Device-Id}i\",\"content_type\":\"%{Content-Type}o\",\"is_cacheable\":\"%{if(fastly_info.state~\\\"^(HIT|MISS)$\\\", \\\"true\\\", \\\"false\\\")}V\",\"response_age\":\"%{Age}o\",\"response_cache_control\":\"%{Cache-Control}o\",\"response_expires\":\"%{Expires}o\",\"response_last_modified\":\"%{Last-Modified}o\",\"response_tsv\":\"%{TSV}o\",\"server_datacenter\":\"%{server.datacenter}V\",\"req_header_size\":\"%{req.header_bytes_read}V\",\"resp_header_size\":\"%{resp.header_bytes_written}V\",\"socket_cwnd\":\"%{client.socket.cwnd}V\",\"socket_nexthop\":\"%{client.socket.nexthop}V\",\"socket_tcpi_rcv_mss\":\"%{client.socket.tcpi_rcv_mss}V\",\"socket_tcpi_snd_mss\":\"%{client.socket.tcpi_snd_mss}V\",\"socket_tcpi_rtt\":\"%{client.socket.tcpi_rtt}V\",\"socket_tcpi_rttvar\":\"%{client.socket.tcpi_rttvar}V\",\"socket_tcpi_rcv_rtt\":\"%{client.socket.tcpi_rcv_rtt}V\",\"socket_tcpi_rcv_space\":\"%{client.socket.tcpi_rcv_space}V\",\"socket_tcpi_last_data_sent\":\"%{client.socket.tcpi_last_data_sent}V\",\"socket_tcpi_total_retrans\":\"%{client.socket.tcpi_total_retrans}V\",\"socket_tcpi_delta_retrans\":\"%{client.socket.tcpi_delta_retrans}V\",\"socket_ploss\":\"%{client.socket.ploss}V\"}'] |
|
|
9
9
|
| **token** | **String** | The API key from your Datadog account. Required. | [optional] |
|
|
10
10
|
|
|
11
11
|
[[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)
|
data/docs/LoggingDatadogApi.md
CHANGED
|
@@ -63,7 +63,7 @@ end
|
|
|
63
63
|
| **name** | **String** | The name for the real-time logging configuration. | [optional] |
|
|
64
64
|
| **placement** | **String** | Where in the generated VCL the logging call should be placed. If not set, endpoints with `format_version` of 2 are placed in `vcl_log` and those with `format_version` of 1 are placed in `vcl_deliver`. | [optional] |
|
|
65
65
|
| **response_condition** | **String** | The name of an existing condition in the configured endpoint, or leave blank to always execute. | [optional] |
|
|
66
|
-
| **format** | **String** | A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. | [optional][default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\"
|
|
66
|
+
| **format** | **String** | A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. | [optional][default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\": %{time.elapsed.msec}V,\"method\":\"%m\",\"url\":\"%{json.escape(req.url)}V\",\"useragent\":\"%{User-Agent}i\",\"referer\":\"%{Referer}i\",\"protocol\":\"%H\",\"request_x_forwarded_for\":\"%{X-Forwarded-For}i\",\"status_code\":\"%s\"},\"network\":{\"client\":{\"ip\":\"%h\",\"name\":\"%{client.as.name}V\",\"number\":\"%{client.as.number}V\",\"connection_speed\":\"%{client.geo.conn_speed}V\"},\"destination\":{\"ip\":\"%A\"},\"geoip\":{\"geo_city\":\"%{client.geo.city.utf8}V\",\"geo_country_code\":\"%{client.geo.country_code}V\",\"geo_continent_code\":\"%{client.geo.continent_code}V\",\"geo_region\":\"%{client.geo.region}V\"},\"bytes_written\":\"%B\",\"bytes_read\":\"%{req.body_bytes_read}V\"},\"host\":\"%{Fastly-Orig-Host}i\",\"origin_host\":\"%v\",\"is_ipv6\":\"%{if(req.is_ipv6, \\\"true\\\", \\\"false\\\")}V\",\"is_tls\":\"%{if(req.is_ssl, \\\"true\\\", \\\"false\\\")}V\",\"tls_client_protocol\":\"%{json.escape(tls.client.protocol)}V\",\"tls_client_servername\":\"%{json.escape(tls.client.servername)}V\",\"tls_client_cipher\":\"%{json.escape(tls.client.cipher)}V\",\"tls_client_cipher_sha\":\"%{json.escape(tls.client.ciphers_sha)}V\",\"tls_client_tlsexts_sha\":\"%{json.escape(tls.client.tlsexts_sha)}V\",\"is_h2\":\"%{if(fastly_info.is_h2, \\\"true\\\", \\\"false\\\")}V\",\"is_h2_push\":\"%{if(fastly_info.h2.is_push, \\\"true\\\", \\\"false\\\")}V\",\"h2_stream_id\":\"%{fastly_info.h2.stream_id}V\",\"request_accept_content\":\"%{Accept}i\",\"request_accept_language\":\"%{Accept-Language}i\",\"request_accept_encoding\":\"%{Accept-Encoding}i\",\"request_accept_charset\":\"%{Accept-Charset}i\",\"request_connection\":\"%{Connection}i\",\"request_dnt\":\"%{DNT}i\",\"request_forwarded\":\"%{Forwarded}i\",\"request_via\":\"%{Via}i\",\"request_cache_control\":\"%{Cache-Control}i\",\"request_x_requested_with\":\"%{X-Requested-With}i\",\"request_x_att_device_id\":\"%{X-ATT-Device-Id}i\",\"content_type\":\"%{Content-Type}o\",\"is_cacheable\":\"%{if(fastly_info.state~\\\"^(HIT|MISS)$\\\", \\\"true\\\", \\\"false\\\")}V\",\"response_age\":\"%{Age}o\",\"response_cache_control\":\"%{Cache-Control}o\",\"response_expires\":\"%{Expires}o\",\"response_last_modified\":\"%{Last-Modified}o\",\"response_tsv\":\"%{TSV}o\",\"server_datacenter\":\"%{server.datacenter}V\",\"req_header_size\":\"%{req.header_bytes_read}V\",\"resp_header_size\":\"%{resp.header_bytes_written}V\",\"socket_cwnd\":\"%{client.socket.cwnd}V\",\"socket_nexthop\":\"%{client.socket.nexthop}V\",\"socket_tcpi_rcv_mss\":\"%{client.socket.tcpi_rcv_mss}V\",\"socket_tcpi_snd_mss\":\"%{client.socket.tcpi_snd_mss}V\",\"socket_tcpi_rtt\":\"%{client.socket.tcpi_rtt}V\",\"socket_tcpi_rttvar\":\"%{client.socket.tcpi_rttvar}V\",\"socket_tcpi_rcv_rtt\":\"%{client.socket.tcpi_rcv_rtt}V\",\"socket_tcpi_rcv_space\":\"%{client.socket.tcpi_rcv_space}V\",\"socket_tcpi_last_data_sent\":\"%{client.socket.tcpi_last_data_sent}V\",\"socket_tcpi_total_retrans\":\"%{client.socket.tcpi_total_retrans}V\",\"socket_tcpi_delta_retrans\":\"%{client.socket.tcpi_delta_retrans}V\",\"socket_ploss\":\"%{client.socket.ploss}V\"}'] |
|
|
67
67
|
| **log_processing_region** | **String** | The geographic region where the logs will be processed before streaming. Valid values are `us`, `eu`, and `none` for global. | [optional][default to 'none'] |
|
|
68
68
|
| **format_version** | **Integer** | The version of the custom logging format used for the configured endpoint. The logging call gets placed by default in `vcl_log` if `format_version` is set to `2` and in `vcl_deliver` if `format_version` is set to `1`. | [optional][default to FORMAT_VERSION::v2] |
|
|
69
69
|
| **region** | **String** | The region that log data will be sent to. | [optional][default to 'US'] |
|
|
@@ -241,7 +241,7 @@ end
|
|
|
241
241
|
| **name** | **String** | The name for the real-time logging configuration. | [optional] |
|
|
242
242
|
| **placement** | **String** | Where in the generated VCL the logging call should be placed. If not set, endpoints with `format_version` of 2 are placed in `vcl_log` and those with `format_version` of 1 are placed in `vcl_deliver`. | [optional] |
|
|
243
243
|
| **response_condition** | **String** | The name of an existing condition in the configured endpoint, or leave blank to always execute. | [optional] |
|
|
244
|
-
| **format** | **String** | A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. | [optional][default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\"
|
|
244
|
+
| **format** | **String** | A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. | [optional][default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\": %{time.elapsed.msec}V,\"method\":\"%m\",\"url\":\"%{json.escape(req.url)}V\",\"useragent\":\"%{User-Agent}i\",\"referer\":\"%{Referer}i\",\"protocol\":\"%H\",\"request_x_forwarded_for\":\"%{X-Forwarded-For}i\",\"status_code\":\"%s\"},\"network\":{\"client\":{\"ip\":\"%h\",\"name\":\"%{client.as.name}V\",\"number\":\"%{client.as.number}V\",\"connection_speed\":\"%{client.geo.conn_speed}V\"},\"destination\":{\"ip\":\"%A\"},\"geoip\":{\"geo_city\":\"%{client.geo.city.utf8}V\",\"geo_country_code\":\"%{client.geo.country_code}V\",\"geo_continent_code\":\"%{client.geo.continent_code}V\",\"geo_region\":\"%{client.geo.region}V\"},\"bytes_written\":\"%B\",\"bytes_read\":\"%{req.body_bytes_read}V\"},\"host\":\"%{Fastly-Orig-Host}i\",\"origin_host\":\"%v\",\"is_ipv6\":\"%{if(req.is_ipv6, \\\"true\\\", \\\"false\\\")}V\",\"is_tls\":\"%{if(req.is_ssl, \\\"true\\\", \\\"false\\\")}V\",\"tls_client_protocol\":\"%{json.escape(tls.client.protocol)}V\",\"tls_client_servername\":\"%{json.escape(tls.client.servername)}V\",\"tls_client_cipher\":\"%{json.escape(tls.client.cipher)}V\",\"tls_client_cipher_sha\":\"%{json.escape(tls.client.ciphers_sha)}V\",\"tls_client_tlsexts_sha\":\"%{json.escape(tls.client.tlsexts_sha)}V\",\"is_h2\":\"%{if(fastly_info.is_h2, \\\"true\\\", \\\"false\\\")}V\",\"is_h2_push\":\"%{if(fastly_info.h2.is_push, \\\"true\\\", \\\"false\\\")}V\",\"h2_stream_id\":\"%{fastly_info.h2.stream_id}V\",\"request_accept_content\":\"%{Accept}i\",\"request_accept_language\":\"%{Accept-Language}i\",\"request_accept_encoding\":\"%{Accept-Encoding}i\",\"request_accept_charset\":\"%{Accept-Charset}i\",\"request_connection\":\"%{Connection}i\",\"request_dnt\":\"%{DNT}i\",\"request_forwarded\":\"%{Forwarded}i\",\"request_via\":\"%{Via}i\",\"request_cache_control\":\"%{Cache-Control}i\",\"request_x_requested_with\":\"%{X-Requested-With}i\",\"request_x_att_device_id\":\"%{X-ATT-Device-Id}i\",\"content_type\":\"%{Content-Type}o\",\"is_cacheable\":\"%{if(fastly_info.state~\\\"^(HIT|MISS)$\\\", \\\"true\\\", \\\"false\\\")}V\",\"response_age\":\"%{Age}o\",\"response_cache_control\":\"%{Cache-Control}o\",\"response_expires\":\"%{Expires}o\",\"response_last_modified\":\"%{Last-Modified}o\",\"response_tsv\":\"%{TSV}o\",\"server_datacenter\":\"%{server.datacenter}V\",\"req_header_size\":\"%{req.header_bytes_read}V\",\"resp_header_size\":\"%{resp.header_bytes_written}V\",\"socket_cwnd\":\"%{client.socket.cwnd}V\",\"socket_nexthop\":\"%{client.socket.nexthop}V\",\"socket_tcpi_rcv_mss\":\"%{client.socket.tcpi_rcv_mss}V\",\"socket_tcpi_snd_mss\":\"%{client.socket.tcpi_snd_mss}V\",\"socket_tcpi_rtt\":\"%{client.socket.tcpi_rtt}V\",\"socket_tcpi_rttvar\":\"%{client.socket.tcpi_rttvar}V\",\"socket_tcpi_rcv_rtt\":\"%{client.socket.tcpi_rcv_rtt}V\",\"socket_tcpi_rcv_space\":\"%{client.socket.tcpi_rcv_space}V\",\"socket_tcpi_last_data_sent\":\"%{client.socket.tcpi_last_data_sent}V\",\"socket_tcpi_total_retrans\":\"%{client.socket.tcpi_total_retrans}V\",\"socket_tcpi_delta_retrans\":\"%{client.socket.tcpi_delta_retrans}V\",\"socket_ploss\":\"%{client.socket.ploss}V\"}'] |
|
|
245
245
|
| **log_processing_region** | **String** | The geographic region where the logs will be processed before streaming. Valid values are `us`, `eu`, and `none` for global. | [optional][default to 'none'] |
|
|
246
246
|
| **format_version** | **Integer** | The version of the custom logging format used for the configured endpoint. The logging call gets placed by default in `vcl_log` if `format_version` is set to `2` and in `vcl_deliver` if `format_version` is set to `1`. | [optional][default to FORMAT_VERSION::v2] |
|
|
247
247
|
| **region** | **String** | The region that log data will be sent to. | [optional][default to 'US'] |
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
| **name** | **String** | The name for the real-time logging configuration. | [optional] |
|
|
8
8
|
| **placement** | **String** | Where in the generated VCL the logging call should be placed. If not set, endpoints with `format_version` of 2 are placed in `vcl_log` and those with `format_version` of 1 are placed in `vcl_deliver`. | [optional] |
|
|
9
9
|
| **response_condition** | **String** | The name of an existing condition in the configured endpoint, or leave blank to always execute. | [optional] |
|
|
10
|
-
| **format** | **String** | A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. | [optional][default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\"
|
|
10
|
+
| **format** | **String** | A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. | [optional][default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\": %{time.elapsed.msec}V,\"method\":\"%m\",\"url\":\"%{json.escape(req.url)}V\",\"useragent\":\"%{User-Agent}i\",\"referer\":\"%{Referer}i\",\"protocol\":\"%H\",\"request_x_forwarded_for\":\"%{X-Forwarded-For}i\",\"status_code\":\"%s\"},\"network\":{\"client\":{\"ip\":\"%h\",\"name\":\"%{client.as.name}V\",\"number\":\"%{client.as.number}V\",\"connection_speed\":\"%{client.geo.conn_speed}V\"},\"destination\":{\"ip\":\"%A\"},\"geoip\":{\"geo_city\":\"%{client.geo.city.utf8}V\",\"geo_country_code\":\"%{client.geo.country_code}V\",\"geo_continent_code\":\"%{client.geo.continent_code}V\",\"geo_region\":\"%{client.geo.region}V\"},\"bytes_written\":\"%B\",\"bytes_read\":\"%{req.body_bytes_read}V\"},\"host\":\"%{Fastly-Orig-Host}i\",\"origin_host\":\"%v\",\"is_ipv6\":\"%{if(req.is_ipv6, \\\"true\\\", \\\"false\\\")}V\",\"is_tls\":\"%{if(req.is_ssl, \\\"true\\\", \\\"false\\\")}V\",\"tls_client_protocol\":\"%{json.escape(tls.client.protocol)}V\",\"tls_client_servername\":\"%{json.escape(tls.client.servername)}V\",\"tls_client_cipher\":\"%{json.escape(tls.client.cipher)}V\",\"tls_client_cipher_sha\":\"%{json.escape(tls.client.ciphers_sha)}V\",\"tls_client_tlsexts_sha\":\"%{json.escape(tls.client.tlsexts_sha)}V\",\"is_h2\":\"%{if(fastly_info.is_h2, \\\"true\\\", \\\"false\\\")}V\",\"is_h2_push\":\"%{if(fastly_info.h2.is_push, \\\"true\\\", \\\"false\\\")}V\",\"h2_stream_id\":\"%{fastly_info.h2.stream_id}V\",\"request_accept_content\":\"%{Accept}i\",\"request_accept_language\":\"%{Accept-Language}i\",\"request_accept_encoding\":\"%{Accept-Encoding}i\",\"request_accept_charset\":\"%{Accept-Charset}i\",\"request_connection\":\"%{Connection}i\",\"request_dnt\":\"%{DNT}i\",\"request_forwarded\":\"%{Forwarded}i\",\"request_via\":\"%{Via}i\",\"request_cache_control\":\"%{Cache-Control}i\",\"request_x_requested_with\":\"%{X-Requested-With}i\",\"request_x_att_device_id\":\"%{X-ATT-Device-Id}i\",\"content_type\":\"%{Content-Type}o\",\"is_cacheable\":\"%{if(fastly_info.state~\\\"^(HIT|MISS)$\\\", \\\"true\\\", \\\"false\\\")}V\",\"response_age\":\"%{Age}o\",\"response_cache_control\":\"%{Cache-Control}o\",\"response_expires\":\"%{Expires}o\",\"response_last_modified\":\"%{Last-Modified}o\",\"response_tsv\":\"%{TSV}o\",\"server_datacenter\":\"%{server.datacenter}V\",\"req_header_size\":\"%{req.header_bytes_read}V\",\"resp_header_size\":\"%{resp.header_bytes_written}V\",\"socket_cwnd\":\"%{client.socket.cwnd}V\",\"socket_nexthop\":\"%{client.socket.nexthop}V\",\"socket_tcpi_rcv_mss\":\"%{client.socket.tcpi_rcv_mss}V\",\"socket_tcpi_snd_mss\":\"%{client.socket.tcpi_snd_mss}V\",\"socket_tcpi_rtt\":\"%{client.socket.tcpi_rtt}V\",\"socket_tcpi_rttvar\":\"%{client.socket.tcpi_rttvar}V\",\"socket_tcpi_rcv_rtt\":\"%{client.socket.tcpi_rcv_rtt}V\",\"socket_tcpi_rcv_space\":\"%{client.socket.tcpi_rcv_space}V\",\"socket_tcpi_last_data_sent\":\"%{client.socket.tcpi_last_data_sent}V\",\"socket_tcpi_total_retrans\":\"%{client.socket.tcpi_total_retrans}V\",\"socket_tcpi_delta_retrans\":\"%{client.socket.tcpi_delta_retrans}V\",\"socket_ploss\":\"%{client.socket.ploss}V\"}'] |
|
|
11
11
|
| **log_processing_region** | **String** | The geographic region where the logs will be processed before streaming. Valid values are `us`, `eu`, and `none` for global. | [optional][default to 'none'] |
|
|
12
12
|
| **format_version** | **String** | The version of the custom logging format used for the configured endpoint. The logging call gets placed by default in `vcl_log` if `format_version` is set to `2` and in `vcl_deliver` if `format_version` is set to `1`. | [optional][default to '2'] |
|
|
13
13
|
| **region** | **String** | The region that log data will be sent to. | [optional][default to 'US'] |
|
|
@@ -58,6 +58,8 @@
|
|
|
58
58
|
| **otfp_shield_resp_body_bytes** | **Integer** | Total body bytes delivered via a shield for the Fastly On-the-Fly Packaging service for video-on-demand. | [optional] |
|
|
59
59
|
| **otfp_shield_time** | **Float** | Total amount of time spent delivering a response via a shield from the Fastly On-the-Fly Packaging service for video-on-demand (in seconds). | [optional] |
|
|
60
60
|
| **otfp_deliver_time** | **Float** | Total amount of time spent delivering a response from the Fastly On-the-Fly Packaging service for video-on-demand (in seconds). | [optional] |
|
|
61
|
+
| **imgopto_input_image_bytes** | **Integer** | The total image bytes that would have been delivered if the images had not been transformed by the Fastly Image Optimizer. Bytes are counted once per client request. Byte counts exclude shield traffic and requests where Fastly Image Optimizer proxied a request without attempting to transform it (e.g., file types that are not supported by Image Optimizer). | [optional] |
|
|
62
|
+
| **imgopto_output_image_bytes** | **Integer** | The total image bytes delivered that have been transformed by the Fastly Image Optimizer. Bytes are counted once per client request. Byte counts exclude shield traffic and requests where Fastly Image Optimizer proxied a request without attempting to transform it (e.g., file types that are not supported by Image Optimizer). | [optional] |
|
|
61
63
|
| **imgopto_resp_header_bytes** | **Integer** | Total header bytes delivered from the Fastly Image Optimizer service, including shield traffic. | [optional] |
|
|
62
64
|
| **imgopto_resp_body_bytes** | **Integer** | Total body bytes delivered from the Fastly Image Optimizer service, including shield traffic. | [optional] |
|
|
63
65
|
| **imgopto_shield_resp_header_bytes** | **Integer** | Total header bytes delivered via a shield from the Fastly Image Optimizer service. | [optional] |
|
|
@@ -342,6 +344,19 @@
|
|
|
342
344
|
| **compute_service_bereq_http_error** | **Integer** | Number of backend requests from a Compute service that failed at the HTTP protocol level. Sum of `compute_service_bereq_http_proto_v1_error`, `compute_service_bereq_http_proto_v2_error`, `compute_service_bereq_http_incomplete_error`, `compute_service_bereq_http_timeout_error`, and `compute_service_bereq_http_other_error`. | [optional] |
|
|
343
345
|
| **bot_challenges_pats_issued** | **Integer** | Number of Private Access Token challenges issued. | [optional] |
|
|
344
346
|
| **bot_challenges_pats_succeeded** | **Integer** | Number of successful Private Access Token challenge solutions processed. | [optional] |
|
|
347
|
+
| **bot_edge_requests_headless_count** | **Integer** | Number of edge requests where a headless bot was detected. | [optional] |
|
|
348
|
+
| **status_499** | **Integer** | Number of responses sent with status code 499 (Client Disconnected). | [optional] |
|
|
349
|
+
| **arc_requests** | **Integer** | Number of requests received by AI Runtime Control. | [optional] |
|
|
350
|
+
| **ddos_challenge_complete_tokens_checked** | **Integer** | The number of challenge-complete tokens checked while enforcing DDoS protection rules. | [optional] |
|
|
351
|
+
| **ddos_challenge_complete_tokens_passed** | **Integer** | The number of challenge-complete tokens that passed validation while enforcing DDoS protection rules. | [optional] |
|
|
352
|
+
| **ddos_challenge_complete_tokens_failed** | **Integer** | The number of challenge-complete tokens that failed validation while enforcing DDoS protection rules. | [optional] |
|
|
353
|
+
| **ddos_challenge_starts** | **Integer** | The number of challenge-start tokens created while enforcing DDoS protection rules. | [optional] |
|
|
354
|
+
| **ddos_challenge_complete_tokens_issued** | **Integer** | Number of challenge-complete tokens issued as a result of a DDoS action. For example, issuing a challenge-complete token after a series of CAPTCHA challenges ending in success. | [optional] |
|
|
355
|
+
| **ddos_challenges_issued** | **Integer** | Number of challenges issued from a DDoS action. | [optional] |
|
|
356
|
+
| **ddos_challenges_succeeded** | **Integer** | Number of successful challenge solutions processed as a result of a DDoS action. For example, a correct CAPTCHA solution. | [optional] |
|
|
357
|
+
| **ddos_challenges_failed** | **Integer** | Number of failed challenge solutions processed as a result of a DDoS action. For example, an incorrect CAPTCHA solution. | [optional] |
|
|
358
|
+
| **ddos_challenges_pats_issued** | **Integer** | Number of Private Access Token challenges issued as a result of a DDoS action. | [optional] |
|
|
359
|
+
| **ddos_challenges_pats_succeeded** | **Integer** | Number of successful Private Access Token challenge solutions processed as a result of a DDoS action. | [optional] |
|
|
345
360
|
|
|
346
361
|
[[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)
|
|
347
362
|
|
|
@@ -58,6 +58,8 @@
|
|
|
58
58
|
| **otfp_shield_resp_body_bytes** | **Integer** | Total body bytes delivered via a shield for the Fastly On-the-Fly Packaging service for video-on-demand. | [optional] |
|
|
59
59
|
| **otfp_shield_time** | **Float** | Total amount of time spent delivering a response via a shield from the Fastly On-the-Fly Packaging service for video-on-demand (in seconds). | [optional] |
|
|
60
60
|
| **otfp_deliver_time** | **Float** | Total amount of time spent delivering a response from the Fastly On-the-Fly Packaging service for video-on-demand (in seconds). | [optional] |
|
|
61
|
+
| **imgopto_input_image_bytes** | **Integer** | The total image bytes that would have been delivered if the images had not been transformed by the Fastly Image Optimizer. Bytes are counted once per client request. Byte counts exclude shield traffic and requests where Fastly Image Optimizer proxied a request without attempting to transform it (e.g., file types that are not supported by Image Optimizer). | [optional] |
|
|
62
|
+
| **imgopto_output_image_bytes** | **Integer** | The total image bytes delivered that have been transformed by the Fastly Image Optimizer. Bytes are counted once per client request. Byte counts exclude shield traffic and requests where Fastly Image Optimizer proxied a request without attempting to transform it (e.g., file types that are not supported by Image Optimizer). | [optional] |
|
|
61
63
|
| **imgopto_resp_header_bytes** | **Integer** | Total header bytes delivered from the Fastly Image Optimizer service, including shield traffic. | [optional] |
|
|
62
64
|
| **imgopto_resp_body_bytes** | **Integer** | Total body bytes delivered from the Fastly Image Optimizer service, including shield traffic. | [optional] |
|
|
63
65
|
| **imgopto_shield_resp_header_bytes** | **Integer** | Total header bytes delivered via a shield from the Fastly Image Optimizer service. | [optional] |
|
|
@@ -342,6 +344,19 @@
|
|
|
342
344
|
| **compute_service_bereq_http_error** | **Integer** | Number of backend requests from a Compute service that failed at the HTTP protocol level. Sum of `compute_service_bereq_http_proto_v1_error`, `compute_service_bereq_http_proto_v2_error`, `compute_service_bereq_http_incomplete_error`, `compute_service_bereq_http_timeout_error`, and `compute_service_bereq_http_other_error`. | [optional] |
|
|
343
345
|
| **bot_challenges_pats_issued** | **Integer** | Number of Private Access Token challenges issued. | [optional] |
|
|
344
346
|
| **bot_challenges_pats_succeeded** | **Integer** | Number of successful Private Access Token challenge solutions processed. | [optional] |
|
|
347
|
+
| **bot_edge_requests_headless_count** | **Integer** | Number of edge requests where a headless bot was detected. | [optional] |
|
|
348
|
+
| **status_499** | **Integer** | Number of responses sent with status code 499 (Client Disconnected). | [optional] |
|
|
349
|
+
| **arc_requests** | **Integer** | Number of requests received by AI Runtime Control. | [optional] |
|
|
350
|
+
| **ddos_challenge_complete_tokens_checked** | **Integer** | The number of challenge-complete tokens checked while enforcing DDoS protection rules. | [optional] |
|
|
351
|
+
| **ddos_challenge_complete_tokens_passed** | **Integer** | The number of challenge-complete tokens that passed validation while enforcing DDoS protection rules. | [optional] |
|
|
352
|
+
| **ddos_challenge_complete_tokens_failed** | **Integer** | The number of challenge-complete tokens that failed validation while enforcing DDoS protection rules. | [optional] |
|
|
353
|
+
| **ddos_challenge_starts** | **Integer** | The number of challenge-start tokens created while enforcing DDoS protection rules. | [optional] |
|
|
354
|
+
| **ddos_challenge_complete_tokens_issued** | **Integer** | Number of challenge-complete tokens issued as a result of a DDoS action. For example, issuing a challenge-complete token after a series of CAPTCHA challenges ending in success. | [optional] |
|
|
355
|
+
| **ddos_challenges_issued** | **Integer** | Number of challenges issued from a DDoS action. | [optional] |
|
|
356
|
+
| **ddos_challenges_succeeded** | **Integer** | Number of successful challenge solutions processed as a result of a DDoS action. For example, a correct CAPTCHA solution. | [optional] |
|
|
357
|
+
| **ddos_challenges_failed** | **Integer** | Number of failed challenge solutions processed as a result of a DDoS action. For example, an incorrect CAPTCHA solution. | [optional] |
|
|
358
|
+
| **ddos_challenges_pats_issued** | **Integer** | Number of Private Access Token challenges issued as a result of a DDoS action. | [optional] |
|
|
359
|
+
| **ddos_challenges_pats_succeeded** | **Integer** | Number of successful Private Access Token challenge solutions processed as a result of a DDoS action. | [optional] |
|
|
345
360
|
|
|
346
361
|
[[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)
|
|
347
362
|
|
|
@@ -58,6 +58,8 @@
|
|
|
58
58
|
| **otfp_shield_resp_body_bytes** | **Integer** | Total body bytes delivered via a shield for the Fastly On-the-Fly Packaging service for video-on-demand. | [optional] |
|
|
59
59
|
| **otfp_shield_time** | **Float** | Total amount of time spent delivering a response via a shield from the Fastly On-the-Fly Packaging service for video-on-demand (in seconds). | [optional] |
|
|
60
60
|
| **otfp_deliver_time** | **Float** | Total amount of time spent delivering a response from the Fastly On-the-Fly Packaging service for video-on-demand (in seconds). | [optional] |
|
|
61
|
+
| **imgopto_input_image_bytes** | **Integer** | The total image bytes that would have been delivered if the images had not been transformed by the Fastly Image Optimizer. Bytes are counted once per client request. Byte counts exclude shield traffic and requests where Fastly Image Optimizer proxied a request without attempting to transform it (e.g., file types that are not supported by Image Optimizer). | [optional] |
|
|
62
|
+
| **imgopto_output_image_bytes** | **Integer** | The total image bytes delivered that have been transformed by the Fastly Image Optimizer. Bytes are counted once per client request. Byte counts exclude shield traffic and requests where Fastly Image Optimizer proxied a request without attempting to transform it (e.g., file types that are not supported by Image Optimizer). | [optional] |
|
|
61
63
|
| **imgopto_resp_header_bytes** | **Integer** | Total header bytes delivered from the Fastly Image Optimizer service, including shield traffic. | [optional] |
|
|
62
64
|
| **imgopto_resp_body_bytes** | **Integer** | Total body bytes delivered from the Fastly Image Optimizer service, including shield traffic. | [optional] |
|
|
63
65
|
| **imgopto_shield_resp_header_bytes** | **Integer** | Total header bytes delivered via a shield from the Fastly Image Optimizer service. | [optional] |
|
|
@@ -342,6 +344,19 @@
|
|
|
342
344
|
| **compute_service_bereq_http_error** | **Integer** | Number of backend requests from a Compute service that failed at the HTTP protocol level. Sum of `compute_service_bereq_http_proto_v1_error`, `compute_service_bereq_http_proto_v2_error`, `compute_service_bereq_http_incomplete_error`, `compute_service_bereq_http_timeout_error`, and `compute_service_bereq_http_other_error`. | [optional] |
|
|
343
345
|
| **bot_challenges_pats_issued** | **Integer** | Number of Private Access Token challenges issued. | [optional] |
|
|
344
346
|
| **bot_challenges_pats_succeeded** | **Integer** | Number of successful Private Access Token challenge solutions processed. | [optional] |
|
|
347
|
+
| **bot_edge_requests_headless_count** | **Integer** | Number of edge requests where a headless bot was detected. | [optional] |
|
|
348
|
+
| **status_499** | **Integer** | Number of responses sent with status code 499 (Client Disconnected). | [optional] |
|
|
349
|
+
| **arc_requests** | **Integer** | Number of requests received by AI Runtime Control. | [optional] |
|
|
350
|
+
| **ddos_challenge_complete_tokens_checked** | **Integer** | The number of challenge-complete tokens checked while enforcing DDoS protection rules. | [optional] |
|
|
351
|
+
| **ddos_challenge_complete_tokens_passed** | **Integer** | The number of challenge-complete tokens that passed validation while enforcing DDoS protection rules. | [optional] |
|
|
352
|
+
| **ddos_challenge_complete_tokens_failed** | **Integer** | The number of challenge-complete tokens that failed validation while enforcing DDoS protection rules. | [optional] |
|
|
353
|
+
| **ddos_challenge_starts** | **Integer** | The number of challenge-start tokens created while enforcing DDoS protection rules. | [optional] |
|
|
354
|
+
| **ddos_challenge_complete_tokens_issued** | **Integer** | Number of challenge-complete tokens issued as a result of a DDoS action. For example, issuing a challenge-complete token after a series of CAPTCHA challenges ending in success. | [optional] |
|
|
355
|
+
| **ddos_challenges_issued** | **Integer** | Number of challenges issued from a DDoS action. | [optional] |
|
|
356
|
+
| **ddos_challenges_succeeded** | **Integer** | Number of successful challenge solutions processed as a result of a DDoS action. For example, a correct CAPTCHA solution. | [optional] |
|
|
357
|
+
| **ddos_challenges_failed** | **Integer** | Number of failed challenge solutions processed as a result of a DDoS action. For example, an incorrect CAPTCHA solution. | [optional] |
|
|
358
|
+
| **ddos_challenges_pats_issued** | **Integer** | Number of Private Access Token challenges issued as a result of a DDoS action. | [optional] |
|
|
359
|
+
| **ddos_challenges_pats_succeeded** | **Integer** | Number of successful Private Access Token challenge solutions processed as a result of a DDoS action. | [optional] |
|
|
345
360
|
|
|
346
361
|
[[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)
|
|
347
362
|
|
data/docs/Results.md
CHANGED
|
@@ -78,6 +78,8 @@
|
|
|
78
78
|
| **attack_passed_req_header_bytes** | **Integer** | Total header bytes received from requests that triggered a WAF rule that was passed. | [optional] |
|
|
79
79
|
| **attack_resp_synth_bytes** | **Integer** | Total bytes delivered for requests that triggered a WAF rule and returned a synthetic response. | [optional] |
|
|
80
80
|
| **imgopto** | **Integer** | Number of responses that came from the Fastly Image Optimizer service. If the service receives 10 requests for an image, this stat will be 10 regardless of how many times the image was transformed. | [optional] |
|
|
81
|
+
| **imgopto_input_image_bytes** | **Integer** | The total image bytes that would have been delivered if the images had not been transformed by the Fastly Image Optimizer. Bytes are counted once per client request. Byte counts exclude shield traffic and requests where Fastly Image Optimizer proxied a request without attempting to transform it (e.g., file types that are not supported by Image Optimizer). | [optional] |
|
|
82
|
+
| **imgopto_output_image_bytes** | **Integer** | The total image bytes delivered that have been transformed by the Fastly Image Optimizer. Bytes are counted once per client request. Byte counts exclude shield traffic and requests where Fastly Image Optimizer proxied a request without attempting to transform it (e.g., file types that are not supported by Image Optimizer). | [optional] |
|
|
81
83
|
| **imgopto_resp_body_bytes** | **Integer** | Total body bytes delivered from the Fastly Image Optimizer service, including shield traffic. | [optional] |
|
|
82
84
|
| **imgopto_resp_header_bytes** | **Integer** | Total header bytes delivered from the Fastly Image Optimizer service, including shield traffic. | [optional] |
|
|
83
85
|
| **imgopto_shield** | **Integer** | Number of responses that came from the Fastly Image Optimizer service via a shield. | [optional] |
|
|
@@ -349,6 +351,19 @@
|
|
|
349
351
|
| **compute_service_bereq_http_error** | **Integer** | Number of backend requests from a Compute service that failed at the HTTP protocol level. Sum of `compute_service_bereq_http_proto_v1_error`, `compute_service_bereq_http_proto_v2_error`, `compute_service_bereq_http_incomplete_error`, `compute_service_bereq_http_timeout_error`, and `compute_service_bereq_http_other_error`. | [optional] |
|
|
350
352
|
| **bot_challenges_pats_issued** | **Integer** | Number of Private Access Token challenges issued. | [optional] |
|
|
351
353
|
| **bot_challenges_pats_succeeded** | **Integer** | Number of successful Private Access Token challenge solutions processed. | [optional] |
|
|
354
|
+
| **bot_edge_requests_headless_count** | **Integer** | Number of edge requests where a headless bot was detected. | [optional] |
|
|
355
|
+
| **status_499** | **Integer** | Number of responses sent with status code 499 (Client Disconnected). | [optional] |
|
|
356
|
+
| **arc_requests** | **Integer** | Number of requests received by AI Runtime Control. | [optional] |
|
|
357
|
+
| **ddos_challenge_complete_tokens_checked** | **Integer** | The number of challenge-complete tokens checked while enforcing DDoS protection rules. | [optional] |
|
|
358
|
+
| **ddos_challenge_complete_tokens_passed** | **Integer** | The number of challenge-complete tokens that passed validation while enforcing DDoS protection rules. | [optional] |
|
|
359
|
+
| **ddos_challenge_complete_tokens_failed** | **Integer** | The number of challenge-complete tokens that failed validation while enforcing DDoS protection rules. | [optional] |
|
|
360
|
+
| **ddos_challenge_starts** | **Integer** | The number of challenge-start tokens created while enforcing DDoS protection rules. | [optional] |
|
|
361
|
+
| **ddos_challenge_complete_tokens_issued** | **Integer** | Number of challenge-complete tokens issued as a result of a DDoS action. For example, issuing a challenge-complete token after a series of CAPTCHA challenges ending in success. | [optional] |
|
|
362
|
+
| **ddos_challenges_issued** | **Integer** | Number of challenges issued from a DDoS action. | [optional] |
|
|
363
|
+
| **ddos_challenges_succeeded** | **Integer** | Number of successful challenge solutions processed as a result of a DDoS action. For example, a correct CAPTCHA solution. | [optional] |
|
|
364
|
+
| **ddos_challenges_failed** | **Integer** | Number of failed challenge solutions processed as a result of a DDoS action. For example, an incorrect CAPTCHA solution. | [optional] |
|
|
365
|
+
| **ddos_challenges_pats_issued** | **Integer** | Number of Private Access Token challenges issued as a result of a DDoS action. | [optional] |
|
|
366
|
+
| **ddos_challenges_pats_succeeded** | **Integer** | Number of successful Private Access Token challenge solutions processed as a result of a DDoS action. | [optional] |
|
|
352
367
|
| **service_id** | **String** | | [optional][readonly] |
|
|
353
368
|
| **start_time** | **Integer** | Timestamp for the start of the time period being reported | [optional] |
|
|
354
369
|
|
data/docs/Values.md
CHANGED
|
@@ -137,6 +137,7 @@
|
|
|
137
137
|
| **tls_v11** | **Integer** | Number of requests received over TLS 1.1. | [optional] |
|
|
138
138
|
| **tls_v12** | **Integer** | Number of requests received over TLS 1.2. | [optional] |
|
|
139
139
|
| **tls_v13** | **Integer** | Number of requests received over TLS 1.3. | [optional] |
|
|
140
|
+
| **status_499** | **Integer** | Number of responses sent with status code 499 (Client Disconnected). | [optional] |
|
|
140
141
|
|
|
141
142
|
[[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)
|
|
142
143
|
|
|
@@ -24,7 +24,7 @@ module Fastly
|
|
|
24
24
|
# @option opts [String] :name The name for the real-time logging configuration.
|
|
25
25
|
# @option opts [String] :placement Where in the generated VCL the logging call should be placed. If not set, endpoints with `format_version` of 2 are placed in `vcl_log` and those with `format_version` of 1 are placed in `vcl_deliver`.
|
|
26
26
|
# @option opts [String] :response_condition The name of an existing condition in the configured endpoint, or leave blank to always execute.
|
|
27
|
-
# @option opts [String] :format A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. (default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\"
|
|
27
|
+
# @option opts [String] :format A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. (default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\": %{time.elapsed.msec}V,\"method\":\"%m\",\"url\":\"%{json.escape(req.url)}V\",\"useragent\":\"%{User-Agent}i\",\"referer\":\"%{Referer}i\",\"protocol\":\"%H\",\"request_x_forwarded_for\":\"%{X-Forwarded-For}i\",\"status_code\":\"%s\"},\"network\":{\"client\":{\"ip\":\"%h\",\"name\":\"%{client.as.name}V\",\"number\":\"%{client.as.number}V\",\"connection_speed\":\"%{client.geo.conn_speed}V\"},\"destination\":{\"ip\":\"%A\"},\"geoip\":{\"geo_city\":\"%{client.geo.city.utf8}V\",\"geo_country_code\":\"%{client.geo.country_code}V\",\"geo_continent_code\":\"%{client.geo.continent_code}V\",\"geo_region\":\"%{client.geo.region}V\"},\"bytes_written\":\"%B\",\"bytes_read\":\"%{req.body_bytes_read}V\"},\"host\":\"%{Fastly-Orig-Host}i\",\"origin_host\":\"%v\",\"is_ipv6\":\"%{if(req.is_ipv6, \\\"true\\\", \\\"false\\\")}V\",\"is_tls\":\"%{if(req.is_ssl, \\\"true\\\", \\\"false\\\")}V\",\"tls_client_protocol\":\"%{json.escape(tls.client.protocol)}V\",\"tls_client_servername\":\"%{json.escape(tls.client.servername)}V\",\"tls_client_cipher\":\"%{json.escape(tls.client.cipher)}V\",\"tls_client_cipher_sha\":\"%{json.escape(tls.client.ciphers_sha)}V\",\"tls_client_tlsexts_sha\":\"%{json.escape(tls.client.tlsexts_sha)}V\",\"is_h2\":\"%{if(fastly_info.is_h2, \\\"true\\\", \\\"false\\\")}V\",\"is_h2_push\":\"%{if(fastly_info.h2.is_push, \\\"true\\\", \\\"false\\\")}V\",\"h2_stream_id\":\"%{fastly_info.h2.stream_id}V\",\"request_accept_content\":\"%{Accept}i\",\"request_accept_language\":\"%{Accept-Language}i\",\"request_accept_encoding\":\"%{Accept-Encoding}i\",\"request_accept_charset\":\"%{Accept-Charset}i\",\"request_connection\":\"%{Connection}i\",\"request_dnt\":\"%{DNT}i\",\"request_forwarded\":\"%{Forwarded}i\",\"request_via\":\"%{Via}i\",\"request_cache_control\":\"%{Cache-Control}i\",\"request_x_requested_with\":\"%{X-Requested-With}i\",\"request_x_att_device_id\":\"%{X-ATT-Device-Id}i\",\"content_type\":\"%{Content-Type}o\",\"is_cacheable\":\"%{if(fastly_info.state~\\\"^(HIT|MISS)$\\\", \\\"true\\\", \\\"false\\\")}V\",\"response_age\":\"%{Age}o\",\"response_cache_control\":\"%{Cache-Control}o\",\"response_expires\":\"%{Expires}o\",\"response_last_modified\":\"%{Last-Modified}o\",\"response_tsv\":\"%{TSV}o\",\"server_datacenter\":\"%{server.datacenter}V\",\"req_header_size\":\"%{req.header_bytes_read}V\",\"resp_header_size\":\"%{resp.header_bytes_written}V\",\"socket_cwnd\":\"%{client.socket.cwnd}V\",\"socket_nexthop\":\"%{client.socket.nexthop}V\",\"socket_tcpi_rcv_mss\":\"%{client.socket.tcpi_rcv_mss}V\",\"socket_tcpi_snd_mss\":\"%{client.socket.tcpi_snd_mss}V\",\"socket_tcpi_rtt\":\"%{client.socket.tcpi_rtt}V\",\"socket_tcpi_rttvar\":\"%{client.socket.tcpi_rttvar}V\",\"socket_tcpi_rcv_rtt\":\"%{client.socket.tcpi_rcv_rtt}V\",\"socket_tcpi_rcv_space\":\"%{client.socket.tcpi_rcv_space}V\",\"socket_tcpi_last_data_sent\":\"%{client.socket.tcpi_last_data_sent}V\",\"socket_tcpi_total_retrans\":\"%{client.socket.tcpi_total_retrans}V\",\"socket_tcpi_delta_retrans\":\"%{client.socket.tcpi_delta_retrans}V\",\"socket_ploss\":\"%{client.socket.ploss}V\"}')
|
|
28
28
|
# @option opts [String] :log_processing_region The geographic region where the logs will be processed before streaming. Valid values are `us`, `eu`, and `none` for global. (default to 'none')
|
|
29
29
|
# @option opts [Integer] :format_version The version of the custom logging format used for the configured endpoint. The logging call gets placed by default in `vcl_log` if `format_version` is set to `2` and in `vcl_deliver` if `format_version` is set to `1`. (default to FORMAT_VERSION::v2)
|
|
30
30
|
# @option opts [String] :region The region that log data will be sent to. (default to 'US')
|
|
@@ -42,7 +42,7 @@ module Fastly
|
|
|
42
42
|
# @option opts [String] :name The name for the real-time logging configuration.
|
|
43
43
|
# @option opts [String] :placement Where in the generated VCL the logging call should be placed. If not set, endpoints with `format_version` of 2 are placed in `vcl_log` and those with `format_version` of 1 are placed in `vcl_deliver`.
|
|
44
44
|
# @option opts [String] :response_condition The name of an existing condition in the configured endpoint, or leave blank to always execute.
|
|
45
|
-
# @option opts [String] :format A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. (default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\"
|
|
45
|
+
# @option opts [String] :format A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. (default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\": %{time.elapsed.msec}V,\"method\":\"%m\",\"url\":\"%{json.escape(req.url)}V\",\"useragent\":\"%{User-Agent}i\",\"referer\":\"%{Referer}i\",\"protocol\":\"%H\",\"request_x_forwarded_for\":\"%{X-Forwarded-For}i\",\"status_code\":\"%s\"},\"network\":{\"client\":{\"ip\":\"%h\",\"name\":\"%{client.as.name}V\",\"number\":\"%{client.as.number}V\",\"connection_speed\":\"%{client.geo.conn_speed}V\"},\"destination\":{\"ip\":\"%A\"},\"geoip\":{\"geo_city\":\"%{client.geo.city.utf8}V\",\"geo_country_code\":\"%{client.geo.country_code}V\",\"geo_continent_code\":\"%{client.geo.continent_code}V\",\"geo_region\":\"%{client.geo.region}V\"},\"bytes_written\":\"%B\",\"bytes_read\":\"%{req.body_bytes_read}V\"},\"host\":\"%{Fastly-Orig-Host}i\",\"origin_host\":\"%v\",\"is_ipv6\":\"%{if(req.is_ipv6, \\\"true\\\", \\\"false\\\")}V\",\"is_tls\":\"%{if(req.is_ssl, \\\"true\\\", \\\"false\\\")}V\",\"tls_client_protocol\":\"%{json.escape(tls.client.protocol)}V\",\"tls_client_servername\":\"%{json.escape(tls.client.servername)}V\",\"tls_client_cipher\":\"%{json.escape(tls.client.cipher)}V\",\"tls_client_cipher_sha\":\"%{json.escape(tls.client.ciphers_sha)}V\",\"tls_client_tlsexts_sha\":\"%{json.escape(tls.client.tlsexts_sha)}V\",\"is_h2\":\"%{if(fastly_info.is_h2, \\\"true\\\", \\\"false\\\")}V\",\"is_h2_push\":\"%{if(fastly_info.h2.is_push, \\\"true\\\", \\\"false\\\")}V\",\"h2_stream_id\":\"%{fastly_info.h2.stream_id}V\",\"request_accept_content\":\"%{Accept}i\",\"request_accept_language\":\"%{Accept-Language}i\",\"request_accept_encoding\":\"%{Accept-Encoding}i\",\"request_accept_charset\":\"%{Accept-Charset}i\",\"request_connection\":\"%{Connection}i\",\"request_dnt\":\"%{DNT}i\",\"request_forwarded\":\"%{Forwarded}i\",\"request_via\":\"%{Via}i\",\"request_cache_control\":\"%{Cache-Control}i\",\"request_x_requested_with\":\"%{X-Requested-With}i\",\"request_x_att_device_id\":\"%{X-ATT-Device-Id}i\",\"content_type\":\"%{Content-Type}o\",\"is_cacheable\":\"%{if(fastly_info.state~\\\"^(HIT|MISS)$\\\", \\\"true\\\", \\\"false\\\")}V\",\"response_age\":\"%{Age}o\",\"response_cache_control\":\"%{Cache-Control}o\",\"response_expires\":\"%{Expires}o\",\"response_last_modified\":\"%{Last-Modified}o\",\"response_tsv\":\"%{TSV}o\",\"server_datacenter\":\"%{server.datacenter}V\",\"req_header_size\":\"%{req.header_bytes_read}V\",\"resp_header_size\":\"%{resp.header_bytes_written}V\",\"socket_cwnd\":\"%{client.socket.cwnd}V\",\"socket_nexthop\":\"%{client.socket.nexthop}V\",\"socket_tcpi_rcv_mss\":\"%{client.socket.tcpi_rcv_mss}V\",\"socket_tcpi_snd_mss\":\"%{client.socket.tcpi_snd_mss}V\",\"socket_tcpi_rtt\":\"%{client.socket.tcpi_rtt}V\",\"socket_tcpi_rttvar\":\"%{client.socket.tcpi_rttvar}V\",\"socket_tcpi_rcv_rtt\":\"%{client.socket.tcpi_rcv_rtt}V\",\"socket_tcpi_rcv_space\":\"%{client.socket.tcpi_rcv_space}V\",\"socket_tcpi_last_data_sent\":\"%{client.socket.tcpi_last_data_sent}V\",\"socket_tcpi_total_retrans\":\"%{client.socket.tcpi_total_retrans}V\",\"socket_tcpi_delta_retrans\":\"%{client.socket.tcpi_delta_retrans}V\",\"socket_ploss\":\"%{client.socket.ploss}V\"}')
|
|
46
46
|
# @option opts [String] :log_processing_region The geographic region where the logs will be processed before streaming. Valid values are `us`, `eu`, and `none` for global. (default to 'none')
|
|
47
47
|
# @option opts [Integer] :format_version The version of the custom logging format used for the configured endpoint. The logging call gets placed by default in `vcl_log` if `format_version` is set to `2` and in `vcl_deliver` if `format_version` is set to `1`. (default to FORMAT_VERSION::v2)
|
|
48
48
|
# @option opts [String] :region The region that log data will be sent to. (default to 'US')
|
|
@@ -364,7 +364,7 @@ module Fastly
|
|
|
364
364
|
# @option opts [String] :name The name for the real-time logging configuration.
|
|
365
365
|
# @option opts [String] :placement Where in the generated VCL the logging call should be placed. If not set, endpoints with `format_version` of 2 are placed in `vcl_log` and those with `format_version` of 1 are placed in `vcl_deliver`.
|
|
366
366
|
# @option opts [String] :response_condition The name of an existing condition in the configured endpoint, or leave blank to always execute.
|
|
367
|
-
# @option opts [String] :format A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. (default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\"
|
|
367
|
+
# @option opts [String] :format A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. (default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\": %{time.elapsed.msec}V,\"method\":\"%m\",\"url\":\"%{json.escape(req.url)}V\",\"useragent\":\"%{User-Agent}i\",\"referer\":\"%{Referer}i\",\"protocol\":\"%H\",\"request_x_forwarded_for\":\"%{X-Forwarded-For}i\",\"status_code\":\"%s\"},\"network\":{\"client\":{\"ip\":\"%h\",\"name\":\"%{client.as.name}V\",\"number\":\"%{client.as.number}V\",\"connection_speed\":\"%{client.geo.conn_speed}V\"},\"destination\":{\"ip\":\"%A\"},\"geoip\":{\"geo_city\":\"%{client.geo.city.utf8}V\",\"geo_country_code\":\"%{client.geo.country_code}V\",\"geo_continent_code\":\"%{client.geo.continent_code}V\",\"geo_region\":\"%{client.geo.region}V\"},\"bytes_written\":\"%B\",\"bytes_read\":\"%{req.body_bytes_read}V\"},\"host\":\"%{Fastly-Orig-Host}i\",\"origin_host\":\"%v\",\"is_ipv6\":\"%{if(req.is_ipv6, \\\"true\\\", \\\"false\\\")}V\",\"is_tls\":\"%{if(req.is_ssl, \\\"true\\\", \\\"false\\\")}V\",\"tls_client_protocol\":\"%{json.escape(tls.client.protocol)}V\",\"tls_client_servername\":\"%{json.escape(tls.client.servername)}V\",\"tls_client_cipher\":\"%{json.escape(tls.client.cipher)}V\",\"tls_client_cipher_sha\":\"%{json.escape(tls.client.ciphers_sha)}V\",\"tls_client_tlsexts_sha\":\"%{json.escape(tls.client.tlsexts_sha)}V\",\"is_h2\":\"%{if(fastly_info.is_h2, \\\"true\\\", \\\"false\\\")}V\",\"is_h2_push\":\"%{if(fastly_info.h2.is_push, \\\"true\\\", \\\"false\\\")}V\",\"h2_stream_id\":\"%{fastly_info.h2.stream_id}V\",\"request_accept_content\":\"%{Accept}i\",\"request_accept_language\":\"%{Accept-Language}i\",\"request_accept_encoding\":\"%{Accept-Encoding}i\",\"request_accept_charset\":\"%{Accept-Charset}i\",\"request_connection\":\"%{Connection}i\",\"request_dnt\":\"%{DNT}i\",\"request_forwarded\":\"%{Forwarded}i\",\"request_via\":\"%{Via}i\",\"request_cache_control\":\"%{Cache-Control}i\",\"request_x_requested_with\":\"%{X-Requested-With}i\",\"request_x_att_device_id\":\"%{X-ATT-Device-Id}i\",\"content_type\":\"%{Content-Type}o\",\"is_cacheable\":\"%{if(fastly_info.state~\\\"^(HIT|MISS)$\\\", \\\"true\\\", \\\"false\\\")}V\",\"response_age\":\"%{Age}o\",\"response_cache_control\":\"%{Cache-Control}o\",\"response_expires\":\"%{Expires}o\",\"response_last_modified\":\"%{Last-Modified}o\",\"response_tsv\":\"%{TSV}o\",\"server_datacenter\":\"%{server.datacenter}V\",\"req_header_size\":\"%{req.header_bytes_read}V\",\"resp_header_size\":\"%{resp.header_bytes_written}V\",\"socket_cwnd\":\"%{client.socket.cwnd}V\",\"socket_nexthop\":\"%{client.socket.nexthop}V\",\"socket_tcpi_rcv_mss\":\"%{client.socket.tcpi_rcv_mss}V\",\"socket_tcpi_snd_mss\":\"%{client.socket.tcpi_snd_mss}V\",\"socket_tcpi_rtt\":\"%{client.socket.tcpi_rtt}V\",\"socket_tcpi_rttvar\":\"%{client.socket.tcpi_rttvar}V\",\"socket_tcpi_rcv_rtt\":\"%{client.socket.tcpi_rcv_rtt}V\",\"socket_tcpi_rcv_space\":\"%{client.socket.tcpi_rcv_space}V\",\"socket_tcpi_last_data_sent\":\"%{client.socket.tcpi_last_data_sent}V\",\"socket_tcpi_total_retrans\":\"%{client.socket.tcpi_total_retrans}V\",\"socket_tcpi_delta_retrans\":\"%{client.socket.tcpi_delta_retrans}V\",\"socket_ploss\":\"%{client.socket.ploss}V\"}')
|
|
368
368
|
# @option opts [String] :log_processing_region The geographic region where the logs will be processed before streaming. Valid values are `us`, `eu`, and `none` for global. (default to 'none')
|
|
369
369
|
# @option opts [Integer] :format_version The version of the custom logging format used for the configured endpoint. The logging call gets placed by default in `vcl_log` if `format_version` is set to `2` and in `vcl_deliver` if `format_version` is set to `1`. (default to FORMAT_VERSION::v2)
|
|
370
370
|
# @option opts [String] :region The region that log data will be sent to. (default to 'US')
|
|
@@ -383,7 +383,7 @@ module Fastly
|
|
|
383
383
|
# @option opts [String] :name The name for the real-time logging configuration.
|
|
384
384
|
# @option opts [String] :placement Where in the generated VCL the logging call should be placed. If not set, endpoints with `format_version` of 2 are placed in `vcl_log` and those with `format_version` of 1 are placed in `vcl_deliver`.
|
|
385
385
|
# @option opts [String] :response_condition The name of an existing condition in the configured endpoint, or leave blank to always execute.
|
|
386
|
-
# @option opts [String] :format A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. (default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\"
|
|
386
|
+
# @option opts [String] :format A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/). Must produce valid JSON that Datadog can ingest. (default to '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\": %{time.elapsed.msec}V,\"method\":\"%m\",\"url\":\"%{json.escape(req.url)}V\",\"useragent\":\"%{User-Agent}i\",\"referer\":\"%{Referer}i\",\"protocol\":\"%H\",\"request_x_forwarded_for\":\"%{X-Forwarded-For}i\",\"status_code\":\"%s\"},\"network\":{\"client\":{\"ip\":\"%h\",\"name\":\"%{client.as.name}V\",\"number\":\"%{client.as.number}V\",\"connection_speed\":\"%{client.geo.conn_speed}V\"},\"destination\":{\"ip\":\"%A\"},\"geoip\":{\"geo_city\":\"%{client.geo.city.utf8}V\",\"geo_country_code\":\"%{client.geo.country_code}V\",\"geo_continent_code\":\"%{client.geo.continent_code}V\",\"geo_region\":\"%{client.geo.region}V\"},\"bytes_written\":\"%B\",\"bytes_read\":\"%{req.body_bytes_read}V\"},\"host\":\"%{Fastly-Orig-Host}i\",\"origin_host\":\"%v\",\"is_ipv6\":\"%{if(req.is_ipv6, \\\"true\\\", \\\"false\\\")}V\",\"is_tls\":\"%{if(req.is_ssl, \\\"true\\\", \\\"false\\\")}V\",\"tls_client_protocol\":\"%{json.escape(tls.client.protocol)}V\",\"tls_client_servername\":\"%{json.escape(tls.client.servername)}V\",\"tls_client_cipher\":\"%{json.escape(tls.client.cipher)}V\",\"tls_client_cipher_sha\":\"%{json.escape(tls.client.ciphers_sha)}V\",\"tls_client_tlsexts_sha\":\"%{json.escape(tls.client.tlsexts_sha)}V\",\"is_h2\":\"%{if(fastly_info.is_h2, \\\"true\\\", \\\"false\\\")}V\",\"is_h2_push\":\"%{if(fastly_info.h2.is_push, \\\"true\\\", \\\"false\\\")}V\",\"h2_stream_id\":\"%{fastly_info.h2.stream_id}V\",\"request_accept_content\":\"%{Accept}i\",\"request_accept_language\":\"%{Accept-Language}i\",\"request_accept_encoding\":\"%{Accept-Encoding}i\",\"request_accept_charset\":\"%{Accept-Charset}i\",\"request_connection\":\"%{Connection}i\",\"request_dnt\":\"%{DNT}i\",\"request_forwarded\":\"%{Forwarded}i\",\"request_via\":\"%{Via}i\",\"request_cache_control\":\"%{Cache-Control}i\",\"request_x_requested_with\":\"%{X-Requested-With}i\",\"request_x_att_device_id\":\"%{X-ATT-Device-Id}i\",\"content_type\":\"%{Content-Type}o\",\"is_cacheable\":\"%{if(fastly_info.state~\\\"^(HIT|MISS)$\\\", \\\"true\\\", \\\"false\\\")}V\",\"response_age\":\"%{Age}o\",\"response_cache_control\":\"%{Cache-Control}o\",\"response_expires\":\"%{Expires}o\",\"response_last_modified\":\"%{Last-Modified}o\",\"response_tsv\":\"%{TSV}o\",\"server_datacenter\":\"%{server.datacenter}V\",\"req_header_size\":\"%{req.header_bytes_read}V\",\"resp_header_size\":\"%{resp.header_bytes_written}V\",\"socket_cwnd\":\"%{client.socket.cwnd}V\",\"socket_nexthop\":\"%{client.socket.nexthop}V\",\"socket_tcpi_rcv_mss\":\"%{client.socket.tcpi_rcv_mss}V\",\"socket_tcpi_snd_mss\":\"%{client.socket.tcpi_snd_mss}V\",\"socket_tcpi_rtt\":\"%{client.socket.tcpi_rtt}V\",\"socket_tcpi_rttvar\":\"%{client.socket.tcpi_rttvar}V\",\"socket_tcpi_rcv_rtt\":\"%{client.socket.tcpi_rcv_rtt}V\",\"socket_tcpi_rcv_space\":\"%{client.socket.tcpi_rcv_space}V\",\"socket_tcpi_last_data_sent\":\"%{client.socket.tcpi_last_data_sent}V\",\"socket_tcpi_total_retrans\":\"%{client.socket.tcpi_total_retrans}V\",\"socket_tcpi_delta_retrans\":\"%{client.socket.tcpi_delta_retrans}V\",\"socket_ploss\":\"%{client.socket.ploss}V\"}')
|
|
387
387
|
# @option opts [String] :log_processing_region The geographic region where the logs will be processed before streaming. Valid values are `us`, `eu`, and `none` for global. (default to 'none')
|
|
388
388
|
# @option opts [Integer] :format_version The version of the custom logging format used for the configured endpoint. The logging call gets placed by default in `vcl_log` if `format_version` is set to `2` and in `vcl_deliver` if `format_version` is set to `1`. (default to FORMAT_VERSION::v2)
|
|
389
389
|
# @option opts [String] :region The region that log data will be sent to. (default to 'US')
|
|
@@ -413,6 +413,9 @@ module Fastly
|
|
|
413
413
|
# Number of requests received over TLS 1.3.
|
|
414
414
|
attr_accessor :tls_v13
|
|
415
415
|
|
|
416
|
+
# Number of responses sent with status code 499 (Client Disconnected).
|
|
417
|
+
attr_accessor :status_499
|
|
418
|
+
|
|
416
419
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
417
420
|
def self.attribute_map
|
|
418
421
|
{
|
|
@@ -548,7 +551,8 @@ module Fastly
|
|
|
548
551
|
:'tls_v10' => :'tls_v10',
|
|
549
552
|
:'tls_v11' => :'tls_v11',
|
|
550
553
|
:'tls_v12' => :'tls_v12',
|
|
551
|
-
:'tls_v13' => :'tls_v13'
|
|
554
|
+
:'tls_v13' => :'tls_v13',
|
|
555
|
+
:'status_499' => :'status_499'
|
|
552
556
|
}
|
|
553
557
|
end
|
|
554
558
|
|
|
@@ -692,7 +696,8 @@ module Fastly
|
|
|
692
696
|
:'tls_v10' => :'Integer',
|
|
693
697
|
:'tls_v11' => :'Integer',
|
|
694
698
|
:'tls_v12' => :'Integer',
|
|
695
|
-
:'tls_v13' => :'Integer'
|
|
699
|
+
:'tls_v13' => :'Integer',
|
|
700
|
+
:'status_499' => :'Integer'
|
|
696
701
|
}
|
|
697
702
|
end
|
|
698
703
|
|
|
@@ -1248,6 +1253,10 @@ module Fastly
|
|
|
1248
1253
|
if attributes.key?(:'tls_v13')
|
|
1249
1254
|
self.tls_v13 = attributes[:'tls_v13']
|
|
1250
1255
|
end
|
|
1256
|
+
|
|
1257
|
+
if attributes.key?(:'status_499')
|
|
1258
|
+
self.status_499 = attributes[:'status_499']
|
|
1259
|
+
end
|
|
1251
1260
|
end
|
|
1252
1261
|
|
|
1253
1262
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
@@ -1400,7 +1409,8 @@ module Fastly
|
|
|
1400
1409
|
tls_v10 == o.tls_v10 &&
|
|
1401
1410
|
tls_v11 == o.tls_v11 &&
|
|
1402
1411
|
tls_v12 == o.tls_v12 &&
|
|
1403
|
-
tls_v13 == o.tls_v13
|
|
1412
|
+
tls_v13 == o.tls_v13 &&
|
|
1413
|
+
status_499 == o.status_499
|
|
1404
1414
|
end
|
|
1405
1415
|
|
|
1406
1416
|
# @see the `==` method
|
|
@@ -1412,7 +1422,7 @@ module Fastly
|
|
|
1412
1422
|
# Calculates hash code according to all attributes.
|
|
1413
1423
|
# @return [Integer] Hash code
|
|
1414
1424
|
def hash
|
|
1415
|
-
[edge_requests, edge_resp_header_bytes, edge_resp_body_bytes, status_1xx, status_2xx, status_3xx, status_4xx, status_5xx, status_200, status_204, status_206, status_301, status_302, status_304, status_400, status_401, status_403, status_404, status_416, status_429, status_500, status_501, status_502, status_503, status_504, status_505, status_530, requests, resp_header_bytes, resp_body_bytes, bereq_header_bytes, bereq_body_bytes, edge_hit_requests, edge_miss_requests, origin_fetches, origin_fetch_resp_header_bytes, origin_fetch_resp_body_bytes, bandwidth, edge_hit_ratio, origin_offload, origin_status_200, origin_status_204, origin_status_206, origin_status_301, origin_status_302, origin_status_304, origin_status_400, origin_status_401, origin_status_403, origin_status_404, origin_status_416, origin_status_429, origin_status_500, origin_status_501, origin_status_502, origin_status_503, origin_status_504, origin_status_505, origin_status_530, origin_status_1xx, origin_status_2xx, origin_status_3xx, origin_status_4xx, origin_status_5xx, compute_bereq_body_bytes, compute_bereq_errors, compute_bereq_header_bytes, compute_bereqs, compute_beresp_body_bytes, compute_beresp_header_bytes, compute_execution_time_ms, compute_origin_status_1xx, compute_origin_status_200, compute_origin_status_204, compute_origin_status_206, compute_origin_status_2xx, compute_origin_status_301, compute_origin_status_302, compute_origin_status_304, compute_origin_status_3xx, compute_origin_status_400, compute_origin_status_401, compute_origin_status_403, compute_origin_status_404, compute_origin_status_416, compute_origin_status_429, compute_origin_status_4xx, compute_origin_status_500, compute_origin_status_501, compute_origin_status_502, compute_origin_status_503, compute_origin_status_504, compute_origin_status_505, compute_origin_status_530, compute_origin_status_5xx, compute_req_body_bytes, compute_req_header_bytes, compute_request_time_billed_ms, compute_request_time_ms, compute_request, compute_resp_body_bytes, compute_resp_header_bytes, compute_resp_status_103, compute_resp_status_1xx, compute_resp_status_200, compute_resp_status_204, compute_resp_status_206, compute_resp_status_2xx, compute_resp_status_301, compute_resp_status_302, compute_resp_status_304, compute_resp_status_3xx, compute_resp_status_400, compute_resp_status_401, compute_resp_status_403, compute_resp_status_404, compute_resp_status_416, compute_resp_status_429, compute_resp_status_4xx, compute_resp_status_500, compute_resp_status_501, compute_resp_status_502, compute_resp_status_503, compute_resp_status_504, compute_resp_status_505, compute_resp_status_530, compute_resp_status_5xx, http2, http3, tls_v10, tls_v11, tls_v12, tls_v13].hash
|
|
1425
|
+
[edge_requests, edge_resp_header_bytes, edge_resp_body_bytes, status_1xx, status_2xx, status_3xx, status_4xx, status_5xx, status_200, status_204, status_206, status_301, status_302, status_304, status_400, status_401, status_403, status_404, status_416, status_429, status_500, status_501, status_502, status_503, status_504, status_505, status_530, requests, resp_header_bytes, resp_body_bytes, bereq_header_bytes, bereq_body_bytes, edge_hit_requests, edge_miss_requests, origin_fetches, origin_fetch_resp_header_bytes, origin_fetch_resp_body_bytes, bandwidth, edge_hit_ratio, origin_offload, origin_status_200, origin_status_204, origin_status_206, origin_status_301, origin_status_302, origin_status_304, origin_status_400, origin_status_401, origin_status_403, origin_status_404, origin_status_416, origin_status_429, origin_status_500, origin_status_501, origin_status_502, origin_status_503, origin_status_504, origin_status_505, origin_status_530, origin_status_1xx, origin_status_2xx, origin_status_3xx, origin_status_4xx, origin_status_5xx, compute_bereq_body_bytes, compute_bereq_errors, compute_bereq_header_bytes, compute_bereqs, compute_beresp_body_bytes, compute_beresp_header_bytes, compute_execution_time_ms, compute_origin_status_1xx, compute_origin_status_200, compute_origin_status_204, compute_origin_status_206, compute_origin_status_2xx, compute_origin_status_301, compute_origin_status_302, compute_origin_status_304, compute_origin_status_3xx, compute_origin_status_400, compute_origin_status_401, compute_origin_status_403, compute_origin_status_404, compute_origin_status_416, compute_origin_status_429, compute_origin_status_4xx, compute_origin_status_500, compute_origin_status_501, compute_origin_status_502, compute_origin_status_503, compute_origin_status_504, compute_origin_status_505, compute_origin_status_530, compute_origin_status_5xx, compute_req_body_bytes, compute_req_header_bytes, compute_request_time_billed_ms, compute_request_time_ms, compute_request, compute_resp_body_bytes, compute_resp_header_bytes, compute_resp_status_103, compute_resp_status_1xx, compute_resp_status_200, compute_resp_status_204, compute_resp_status_206, compute_resp_status_2xx, compute_resp_status_301, compute_resp_status_302, compute_resp_status_304, compute_resp_status_3xx, compute_resp_status_400, compute_resp_status_401, compute_resp_status_403, compute_resp_status_404, compute_resp_status_416, compute_resp_status_429, compute_resp_status_4xx, compute_resp_status_500, compute_resp_status_501, compute_resp_status_502, compute_resp_status_503, compute_resp_status_504, compute_resp_status_505, compute_resp_status_530, compute_resp_status_5xx, http2, http3, tls_v10, tls_v11, tls_v12, tls_v13, status_499].hash
|
|
1416
1426
|
end
|
|
1417
1427
|
|
|
1418
1428
|
# Builds the object from hash
|
|
@@ -97,7 +97,7 @@ module Fastly
|
|
|
97
97
|
if attributes.key?(:'format')
|
|
98
98
|
self.format = attributes[:'format']
|
|
99
99
|
else
|
|
100
|
-
self.format = '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\"
|
|
100
|
+
self.format = '{\"ddsource\":\"fastly\",\"service\":\"%{req.service_id}V\",\"date\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_start\":\"%{begin:%Y-%m-%dT%H:%M:%S%Z}t\",\"time_end\":\"%{end:%Y-%m-%dT%H:%M:%S%Z}t\",\"http\":{\"request_time_ms\": %{time.elapsed.msec}V,\"method\":\"%m\",\"url\":\"%{json.escape(req.url)}V\",\"useragent\":\"%{User-Agent}i\",\"referer\":\"%{Referer}i\",\"protocol\":\"%H\",\"request_x_forwarded_for\":\"%{X-Forwarded-For}i\",\"status_code\":\"%s\"},\"network\":{\"client\":{\"ip\":\"%h\",\"name\":\"%{client.as.name}V\",\"number\":\"%{client.as.number}V\",\"connection_speed\":\"%{client.geo.conn_speed}V\"},\"destination\":{\"ip\":\"%A\"},\"geoip\":{\"geo_city\":\"%{client.geo.city.utf8}V\",\"geo_country_code\":\"%{client.geo.country_code}V\",\"geo_continent_code\":\"%{client.geo.continent_code}V\",\"geo_region\":\"%{client.geo.region}V\"},\"bytes_written\":\"%B\",\"bytes_read\":\"%{req.body_bytes_read}V\"},\"host\":\"%{Fastly-Orig-Host}i\",\"origin_host\":\"%v\",\"is_ipv6\":\"%{if(req.is_ipv6, \\\"true\\\", \\\"false\\\")}V\",\"is_tls\":\"%{if(req.is_ssl, \\\"true\\\", \\\"false\\\")}V\",\"tls_client_protocol\":\"%{json.escape(tls.client.protocol)}V\",\"tls_client_servername\":\"%{json.escape(tls.client.servername)}V\",\"tls_client_cipher\":\"%{json.escape(tls.client.cipher)}V\",\"tls_client_cipher_sha\":\"%{json.escape(tls.client.ciphers_sha)}V\",\"tls_client_tlsexts_sha\":\"%{json.escape(tls.client.tlsexts_sha)}V\",\"is_h2\":\"%{if(fastly_info.is_h2, \\\"true\\\", \\\"false\\\")}V\",\"is_h2_push\":\"%{if(fastly_info.h2.is_push, \\\"true\\\", \\\"false\\\")}V\",\"h2_stream_id\":\"%{fastly_info.h2.stream_id}V\",\"request_accept_content\":\"%{Accept}i\",\"request_accept_language\":\"%{Accept-Language}i\",\"request_accept_encoding\":\"%{Accept-Encoding}i\",\"request_accept_charset\":\"%{Accept-Charset}i\",\"request_connection\":\"%{Connection}i\",\"request_dnt\":\"%{DNT}i\",\"request_forwarded\":\"%{Forwarded}i\",\"request_via\":\"%{Via}i\",\"request_cache_control\":\"%{Cache-Control}i\",\"request_x_requested_with\":\"%{X-Requested-With}i\",\"request_x_att_device_id\":\"%{X-ATT-Device-Id}i\",\"content_type\":\"%{Content-Type}o\",\"is_cacheable\":\"%{if(fastly_info.state~\\\"^(HIT|MISS)$\\\", \\\"true\\\", \\\"false\\\")}V\",\"response_age\":\"%{Age}o\",\"response_cache_control\":\"%{Cache-Control}o\",\"response_expires\":\"%{Expires}o\",\"response_last_modified\":\"%{Last-Modified}o\",\"response_tsv\":\"%{TSV}o\",\"server_datacenter\":\"%{server.datacenter}V\",\"req_header_size\":\"%{req.header_bytes_read}V\",\"resp_header_size\":\"%{resp.header_bytes_written}V\",\"socket_cwnd\":\"%{client.socket.cwnd}V\",\"socket_nexthop\":\"%{client.socket.nexthop}V\",\"socket_tcpi_rcv_mss\":\"%{client.socket.tcpi_rcv_mss}V\",\"socket_tcpi_snd_mss\":\"%{client.socket.tcpi_snd_mss}V\",\"socket_tcpi_rtt\":\"%{client.socket.tcpi_rtt}V\",\"socket_tcpi_rttvar\":\"%{client.socket.tcpi_rttvar}V\",\"socket_tcpi_rcv_rtt\":\"%{client.socket.tcpi_rcv_rtt}V\",\"socket_tcpi_rcv_space\":\"%{client.socket.tcpi_rcv_space}V\",\"socket_tcpi_last_data_sent\":\"%{client.socket.tcpi_last_data_sent}V\",\"socket_tcpi_total_retrans\":\"%{client.socket.tcpi_total_retrans}V\",\"socket_tcpi_delta_retrans\":\"%{client.socket.tcpi_delta_retrans}V\",\"socket_ploss\":\"%{client.socket.ploss}V\"}'
|
|
101
101
|
end
|
|
102
102
|
|
|
103
103
|
if attributes.key?(:'token')
|