Skip to content

Conversation

@sarjyusuf
Copy link
Contributor

  • Add comprehensive overview of what processes SSI instruments and excludes
  • Document location, language, process type, and context-based selection criteria
  • List specific examples of excluded processes (build tools, CLIs, IDEs, system utilities)
  • Add language-specific instrumentation behavior for Java, .NET, Node.js, Python, Ruby
  • Include links to open-source requirements files for transparency
  • Remove marketing language and focus on technical accuracy

What does this PR do? What is the motivation?

Merge instructions

Merge readiness:

  • Ready for merge

For Datadog employees:

Your branch name MUST follow the <name>/<description> convention and include the forward slash (/). Without this format, your pull request will not pass CI, the GitLab pipeline will not run, and you won't get a branch preview. Getting a branch preview makes it easier for us to check any issues with your PR, such as broken links.

If your branch doesn't follow this format, rename it or create a new branch and PR.

[6/5/2025] Merge queue has been disabled on the documentation repo. If you have write access to the repo, the PR has been reviewed by a Documentation team member, and all of the required checks have passed, you can use the Squash and Merge button to merge the PR. If you don't have write access, or you need help, reach out in the #documentation channel in Slack.

Additional notes

- Add comprehensive overview of what processes SSI instruments and excludes
- Document location, language, process type, and context-based selection criteria
- List specific examples of excluded processes (build tools, CLIs, IDEs, system utilities)
- Add language-specific instrumentation behavior for Java, .NET, Node.js, Python, Ruby
- Include links to open-source requirements files for transparency
- Remove marketing language and focus on technical accuracy
@sarjyusuf sarjyusuf requested a review from a team as a code owner October 23, 2025 13:56
@github-actions github-actions bot added the Guide Content impacting a guide label Oct 23, 2025
@github-actions
Copy link
Contributor

Preview links (active after the build_preview check completes)

Modified Files

### Location
Applications deployed in standard application directories are instrumented:
- `/opt/myapp`, `/app`, `/home/user/app` (instrumented)
- `/bin`, `/sbin`, `/usr/bin` (system utilities, not instrumented)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these have exceptions:

{
                "description": "Allowed Python targets from system directories",
                "values": [
                    {
                        "cmp_strategy": "equals",
                        "value": "/usr/bin/gunicorn",
                        "value_type": "entry_file"
                    },
                    {
                        "cmp_strategy": "equals",
                        "value": "/usr/bin/flask",
                        "value_type": "entry_file"
                    },
                    {
                        "cmp_strategy": "equals",
                        "value": "/usr/bin/uvicorn",
                        "value_type": "entry_file"
                    },
                    {
                        "cmp_strategy": "equals",
                        "value": "/usr/bin/django-admin",
                        "value_type": "entry_file"
                    },
                    {
                        "cmp_strategy": "equals",
                        "value": "/usr/bin/celery",
                        "value_type": "entry_file"
                    },
                    {
                        "cmp_strategy": "equals",
                        "value": "/usr/bin/scrapy",
                        "value_type": "entry_file"
                    }
                ]
            }

Comment on lines +65 to +68
- `java -jar myapp.jar` (application, instrumented)
- `java -version` (version check, not instrumented)
- `npm start` (starts application, instrumented)
- `npm install` (installs dependencies, not instrumented)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just to clarify, right now (although work is being done to change that) we do inject but it's the SDK's responsibility to bail (or not)

and like I said, in the future we will also bail (and not inject) if we detected certain command line arguments liek 'help', 'version', etc.

Comment on lines +94 to +96
- Text processing: `grep`, `sed`, `awk`
- File operations: `cp`, `mv`, `tar`, `zip`
- System monitoring: `ps`, `top`, `htop`

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we don't inject these anyway they are native applications

Comment on lines +74 to +84
- **Compilers:** `javac`, `gcc`, `dotnet build`
- **Package managers:** `npm`, `pip`, `gem`, `maven`, `gradle`
- **Build tools:** `make`, `cmake`, `webpack`
- **Project scaffolding:** `dotnet new`, `rails new`, `create-react-app`

### Database and infrastructure management tools
- **Database CLIs:** `psql`, `mysql`, `mongo`, `redis-cli`
- **Kafka tools:** `kafka-topics.sh`, `kafka-console-consumer.sh`
- **Elasticsearch tools:** `elasticsearch-plugin`, `elasticsearch-keystore`
- **Cassandra tools:** `nodetool`, `cqlsh`
- **Cloud CLIs:** `aws`, `gcloud`, `kubectl`

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iadjivon iadjivon self-assigned this Oct 23, 2025
- Modifies environment variables or command-line arguments to load the appropriate tracer SDK.
- Emits telemetry to report status and aid in debugging.
- Includes fallback logic to allow the application to continue running uninstrumented if injection fails.
Single Step Instrumentation instruments the following types of applications:
Copy link
Contributor

@iadjivon iadjivon Oct 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Single Step Instrumentation instruments the following types of applications:
Single Step Instrumentation supports the following types of applications:

Just a small nitpick here to remove the duplication of the word "instrument"

Comment on lines +44 to +48
- **Web services** - API servers, web applications, microservices
- **Application servers** - Tomcat, Jetty, JBoss, WebLogic, Kestrel
- **Background workers** - Celery, Sidekiq, job processors
- **Custom applications** - Business logic and services

Copy link
Contributor

@iadjivon iadjivon Oct 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Web services** - API servers, web applications, microservices
- **Application servers** - Tomcat, Jetty, JBoss, WebLogic, Kestrel
- **Background workers** - Celery, Sidekiq, job processors
- **Custom applications** - Business logic and services
- **Web services**: API servers, web applications, microservices
- **Application servers**: Tomcat, Jetty, JBoss, WebLogic, Kestrel
- **Background workers**: Celery, Sidekiq, job processors
- **Custom applications**: Business logic and services

Editing this to match out style guide.

- **Background workers** - Celery, Sidekiq, job processors
- **Custom applications** - Business logic and services

SSI uses multiple signals to determine if a process should be instrumented:
Copy link
Contributor

@iadjivon iadjivon Oct 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
SSI uses multiple signals to determine if a process should be instrumented:
SSI uses multiple signals such as location, language, process type, and context, to determine if a process should be instrumented.

Adding these here to set the stage for the upcoming headers so the reader knows which signals are to come up next.

Comment on lines +74 to +78
- **Compilers:** `javac`, `gcc`, `dotnet build`
- **Package managers:** `npm`, `pip`, `gem`, `maven`, `gradle`
- **Build tools:** `make`, `cmake`, `webpack`
- **Project scaffolding:** `dotnet new`, `rails new`, `create-react-app`

Copy link
Contributor

@iadjivon iadjivon Oct 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Compilers:** `javac`, `gcc`, `dotnet build`
- **Package managers:** `npm`, `pip`, `gem`, `maven`, `gradle`
- **Build tools:** `make`, `cmake`, `webpack`
- **Project scaffolding:** `dotnet new`, `rails new`, `create-react-app`
- Compilers: `javac`, `gcc`, `dotnet build`
- Package managers: `npm`, `pip`, `gem`, `maven`, `gradle`
- Build tools: `make`, `cmake`, `webpack`
- Project scaffolding: `dotnet new`, `rails new`, `create-react-app`

I don't think these need to be bolded since the values are in quotes .

Comment on lines +80 to +84
- **Database CLIs:** `psql`, `mysql`, `mongo`, `redis-cli`
- **Kafka tools:** `kafka-topics.sh`, `kafka-console-consumer.sh`
- **Elasticsearch tools:** `elasticsearch-plugin`, `elasticsearch-keystore`
- **Cassandra tools:** `nodetool`, `cqlsh`
- **Cloud CLIs:** `aws`, `gcloud`, `kubectl`
Copy link
Contributor

@iadjivon iadjivon Oct 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Database CLIs:** `psql`, `mysql`, `mongo`, `redis-cli`
- **Kafka tools:** `kafka-topics.sh`, `kafka-console-consumer.sh`
- **Elasticsearch tools:** `elasticsearch-plugin`, `elasticsearch-keystore`
- **Cassandra tools:** `nodetool`, `cqlsh`
- **Cloud CLIs:** `aws`, `gcloud`, `kubectl`
- Database CLIs: `psql`, `mysql`, `mongo`, `redis-cli`
- Kafka tools: `kafka-topics.sh`, `kafka-console-consumer.sh`
- Elasticsearch tools: `elasticsearch-plugin`, `elasticsearch-keystore`
- Cassandra tools: `nodetool`, `cqlsh`
- Cloud CLIs: `aws`, `gcloud`, `kubectl`

Copy link
Contributor

@iadjivon iadjivon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi there,
Thanks for this PR. I added some comments/suggestions here. Let me know if you have any questions!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Guide Content impacting a guide

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants