Skip to content

Commit

Permalink
Merge branch 'master' into add-http-route
Browse files Browse the repository at this point in the history
  • Loading branch information
y9v committed Sep 17, 2024
2 parents b72916c + 8f9f58c commit 704eb19
Show file tree
Hide file tree
Showing 29 changed files with 3,735 additions and 172 deletions.
10 changes: 10 additions & 0 deletions .github/workflows/system-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,12 @@ jobs:
- APPSEC_BLOCKING_FULL_DENYLIST
- APPSEC_REQUEST_BLOCKING
include:
- library: ruby
app: rack
scenario: INTEGRATIONS
- library: ruby
app: rack
scenario: CROSSED_TRACING_LIBRARIES
- library: ruby
app: rack
scenario: REMOTE_CONFIG_MOCKED_BACKEND_ASM_DD
Expand Down Expand Up @@ -284,6 +290,10 @@ jobs:
./run.sh ++docker ${{ matrix.scenario }} ${{matrix.scenario == env.FORCE_TESTS_SCENARIO && env.FORCE_TESTS || ''}}
env:
DD_API_KEY: ${{ secrets.DD_APPSEC_SYSTEM_TESTS_API_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.SYSTEM_TESTS_IDM_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.SYSTEM_TESTS_IDM_AWS_SECRET_ACCESS_KEY }}
AWS_REGION: us-east-1
AWS_DEFAULT_REGION: us-east-1 # AWS services should use `AWS_REGION`, but some still use the older `AWS_DEFAULT_REGION`
- name: Archive logs
uses: actions/upload-artifact@v4
if: ${{ always() }}
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/test-memory-leaks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ jobs:
- run: sudo apt update && sudo apt install -y valgrind && valgrind --version
- run: bundle exec rake compile spec:profiling:memcheck
test-asan:
# Temporarily disabled on 2024-09-17 until ruby-asan builds are available again on
# https://github.com/ruby/ruby-dev-builder/releases
if: false
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion docs/DevelopmentGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ After introducing a new group definition or changing existing one, run `bundle e

To install dependencies, run `bundle exec appraisal install`.

In addition, if you already know which appraisal group definition to work with, you can target a specific group operation with environment vairable `APPRAISAL_GROUP`, instead of all the groups from your environment. For example:
In addition, if you already know which appraisal group definition to work with, you can target a specific group operation with environment variable `APPRAISAL_GROUP`, instead of all the groups from your environment. For example:

```
# This would only install dependencies for `aws` group definition
Expand Down
8 changes: 4 additions & 4 deletions docs/GettingStarted.md
Original file line number Diff line number Diff line change
Expand Up @@ -738,7 +738,7 @@ connection.get
| `peer_service` | `DD_TRACE_EXCON_PEER_SERVICE` | `String` | Name of external service the application connects to | `nil` |
| `distributed_tracing` | | `Bool` | Enables [distributed tracing](#distributed-tracing) | `true` |
| `split_by_domain` | | `Bool` | Uses the request domain as the service name when set to `true`. | `false` |
| `on_error` | | `Proc` | Custom error handler invoked when a request raises an error. Provided `span` and `error` as arguments. Sets error on the span by deault. | `proc { \|span, error\| span.set_error(error) unless span.nil? }` |
| `on_error` | | `Proc` | Custom error handler invoked when a request raises an error. Provided `span` and `error` as arguments. Sets error on the span by default. | `proc { \|span, error\| span.set_error(error) unless span.nil? }` |
| `error_status_codes` | `DD_TRACE_EXCON_ERROR_STATUS_CODES` | `Array`\|`Range` | Defines HTTP status codes that are traced as errors. Value can be a range (`400...600`), or an array of ranges/integers `[403, 500...600]`. If configured with environment variable, use dash for range (`'400-599'`) and comma for adding element into an array (`'403,500-599'`) | `400...600` |

**Configuring connections to use different settings**
Expand Down Expand Up @@ -803,7 +803,7 @@ connection.get('/foo')
| `peer_service` | `DD_TRACE_FARADAY_PEER_SERVICE` | `String` | Name of external service the application connects to | `nil` |
| `distributed_tracing` | | `Bool` | Enables [distributed tracing](#distributed-tracing) | `true` |
| `split_by_domain` | | `Bool` | Uses the request domain as the service name when set to `true`. | `false` |
| `on_error` | | `Proc` | Custom error handler invoked when a request raises an error. Provided `span` and `error` as arguments. Sets an error on the span by deault. | `proc { \|span, error\| span.set_error(error) unless span.nil? }` |
| `on_error` | | `Proc` | Custom error handler invoked when a request raises an error. Provided `span` and `error` as arguments. Sets an error on the span by default. | `proc { \|span, error\| span.set_error(error) unless span.nil? }` |
| `error_status_codes` | `DD_TRACE_FARADAY_ERROR_STATUS_CODES` | `Array`\|`Range` | Defines HTTP status codes that are traced as errors. Value can be a range (`400...600`), or an array of ranges/integers `[403, 500...600]`. If configured with environment variable, use dash for range (`'400-599'`) and comma for adding element into an array (`'403,500-599'`) | `400...600` |

### Grape
Expand Down Expand Up @@ -907,7 +907,7 @@ class YourSchema < GraphQL::Schema
span.set_tag("custom:#{trace_key}", data.keys.sort.join(","))
end
end
trace_with CustomTracing
end
```
Expand Down Expand Up @@ -2051,7 +2051,7 @@ For example, if `tracing.sampling.default_rate` is configured by [Remote Configu
| `tracing.sampler` | | `Datadog::Tracing::Sampling::Sampler` | `nil` | Advanced usage only. Sets a custom `Datadog::Tracing::Sampling::Sampler` instance. If provided, the tracer will use this sampler to determine sampling behavior. See [Custom sampling](#custom-sampling) for details. |
| `tracing.sampling.default_rate` | `DD_TRACE_SAMPLE_RATE` | `Float` | `nil` | Sets the trace sampling rate between `0.0` (0%) and `1.0` (100%). |
| `tracing.sampling.rate_limit` | `DD_TRACE_RATE_LIMIT` | `Integer` | `100` (per second) | Sets a maximum number of traces per second to sample. Set a rate limit to avoid the ingestion volume overages in the case of traffic spikes. |
| `tracing.sampling.rules` | `DD_TRACE_SAMPLING_RULES` | `String` | `nil` | Sets trace-level sampling rules, matching against the local root span. The format is a `String` with JSON, containing an Array of Objects. Each Object must have a float attribute `sample_rate` (between 0.0 and 1.0, inclusive), and optionally `name`, `service`, `resource`, and `tags` string attributes. `name`, `service`, `resource`, and `tags` control to which traces this sampling rule applies; if they are all absent, then this rule applies to all traces. Rules are evaluted in order of declartion in the array; only the first to match is applied. If none apply, then `tracing.sampling.default_rate` is applied. |
| `tracing.sampling.rules` | `DD_TRACE_SAMPLING_RULES` | `String` | `nil` | Sets trace-level sampling rules, matching against the local root span. The format is a `String` with JSON, containing an Array of Objects. Each Object must have a float attribute `sample_rate` (between 0.0 and 1.0, inclusive), and optionally `name`, `service`, `resource`, and `tags` string attributes. `name`, `service`, `resource`, and `tags` control to which traces this sampling rule applies; if they are all absent, then this rule applies to all traces. Rules are evaluated in order of declaration in the array; only the first to match is applied. If none apply, then `tracing.sampling.default_rate` is applied. |
| `tracing.sampling.span_rules` | `DD_SPAN_SAMPLING_RULES`,`ENV_SPAN_SAMPLING_RULES_FILE` | `String` | `nil` | Sets [Single Span Sampling](#single-span-sampling) rules. These rules allow you to keep spans even when their respective traces are dropped. |
| `tracing.trace_id_128_bit_generation_enabled` | `DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED` | `Bool` | `true` | `true` to generate 128 bits trace ID and `false` to generate 64 bits trace ID |
| `tracing.report_hostname` | `DD_TRACE_REPORT_HOSTNAME` | `Bool` | `false` | Adds hostname tag to traces. |
Expand Down
4 changes: 2 additions & 2 deletions docs/UpgradeGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,7 @@ The public API provides new functions to access active trace data:

```ruby
### Old 0.x ###
# Retuns the active context (contains trace state)
# Returns the active context (contains trace state)
Datadog.tracer.call_context
# Returns the active Span
Datadog.tracer.active_span
Expand All @@ -400,7 +400,7 @@ Datadog.tracer.active_correlation


### New 1.0 ###
# Retuns the active TraceOperation for the current thread (contains trace state)
# Returns the active TraceOperation for the current thread (contains trace state)
Datadog::Tracing.active_trace
# Returns the active SpanOperation for the current thread (contains span state)
Datadog::Tracing.active_span
Expand Down
8 changes: 4 additions & 4 deletions docs/UpgradeGuide2.md
Original file line number Diff line number Diff line change
Expand Up @@ -265,10 +265,10 @@ Remove constants at `Datadog::Tracing::Distributed::Headers::Ext`. see table bel
| `Datadog::Tracing::Distributed::Headers::Ext::HTTP_HEADER_SAMPLING_PRIORITY` | `Datadog::Tracing::Distributed::Datadog::SAMPLING_PRIORITY_KEY` |
| `Datadog::Tracing::Distributed::Headers::Ext::HTTP_HEADER_ORIGIN` | `Datadog::Tracing::Distributed::Datadog::ORIGIN_KEY` |
| `Datadog::Tracing::Distributed::Headers::Ext::HTTP_HEADER_TAGS` | `Datadog::Tracing::Distributed::Datadog::TAGS_KEY` |
| `Datadog::Tracing::Distributed::Headers::Ext::B3_HEADER_TRACE_ID` | `Datadog::Tracing::Distirbuted::B3Multi::B3_TRACE_ID_KEY` |
| `Datadog::Tracing::Distributed::Headers::Ext::B3_HEADER_SPAN_ID` | `Datadog::Tracing::Distirbuted::B3Multi::B3_SPAN_ID_KEY` |
| `Datadog::Tracing::Distributed::Headers::Ext::B3_HEADER_SAMPLED` | `Datadog::Tracing::Distirbuted::B3Multi::B3_SAMPLED_KEY` |
| `Datadog::Tracing::Distributed::Headers::Ext::B3_HEADER_SINGLE` | `Datadog::Tracing::Distirbuted::B3Single::B3_SINGLE_HEADER_KEY` |
| `Datadog::Tracing::Distributed::Headers::Ext::B3_HEADER_TRACE_ID` | `Datadog::Tracing::Distributed::B3Multi::B3_TRACE_ID_KEY` |
| `Datadog::Tracing::Distributed::Headers::Ext::B3_HEADER_SPAN_ID` | `Datadog::Tracing::Distributed::B3Multi::B3_SPAN_ID_KEY` |
| `Datadog::Tracing::Distributed::Headers::Ext::B3_HEADER_SAMPLED` | `Datadog::Tracing::Distributed::B3Multi::B3_SAMPLED_KEY` |
| `Datadog::Tracing::Distributed::Headers::Ext::B3_HEADER_SINGLE` | `Datadog::Tracing::Distributed::B3Single::B3_SINGLE_HEADER_KEY` |
| `Datadog::Tracing::Distributed::Headers::Ext::GRPC_METADATA_TRACE_ID` | `Datadog::Tracing::Distributed::Datadog::TRACE_ID_KEY` |
| `Datadog::Tracing::Distributed::Headers::Ext::GRPC_METADATA_PARENT_ID` | `Datadog::Tracing::Distributed::Datadog::PARENT_ID_KEY` |
| `Datadog::Tracing::Distributed::Headers::Ext::GRPC_METADATA_SAMPLING_PRIORITY` | `Datadog::Tracing::Distributed::Datadog::SAMPLING_PRIORITY_KEY` |
Expand Down
Loading

0 comments on commit 704eb19

Please sign in to comment.