---
title: APM security: C SDK
source: https://docs.newrelic.com/docs/apm/agents/c-sdk/get-started/apm-security-c-sdk
---

> #### ⚠️ EOL NOTICE
>
> From April 2022, we don't support the C SDK capability. For more details, see our [Support Forum post](https://support.newrelic.com/s/hubtopic/aAX8W0000008d0r/q1-bulk-eol-announcement-fy23).

Due of the nature of the C SDK, you have direct control over what data is reported to New Relic. To ensure data privacy and to limit the types of information New Relic receives, no customer data is captured except what you supply in your API calls. In addition, the C SDK reports all data to New Relic over HTTPS.

For more information about our security measures, see our [security and privacy documentation](https://docs.newrelic.com/docs/using-new-relic/new-relic-security/security/security-matters-data-privacy-new-relic), or visit the [New Relic security website](https://newrelic.com/security).

## Default security settings [#default]

By default, this is how the C SDK handles the following potentially sensitive data. For more information, including code values and examples, see the [C SDK documentation about data structures on GitHub](https://newrelic.github.io/c-sdk/annotated.html).

| Type of information                                                                                                                   | C SDK data security                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Datastore instance name or database name                                                                                              | The [`newrelic_datastore_segment_config_t`](https://newrelic.github.io/c-sdk/structnewrelic__datastore__segment__config__t.html) is a struct that configures whether a datastore's instance name and table name are captured for datastore segment instrumentation. - Instance names: By default, the configuration returned by `newrelic_new_config()` enables datastore segments with `instance_reporting` set to `true`. - Database names: By default, the configuration returned by `newrelic_new_config()` enables datastore segments with `database_name_reporting` set to `true`. |
| SQL                                                                                                                                   | The `record_sql` setting in the [`newrelic_transaction_tracer_config_t`](https://newrelic.github.io/c-sdk/structnewrelic__transaction__tracer__config__t.html) controls the SQL format in transaction traces for supported SQL-like products. The default setting, `NEWRELIC_SQL_OBFUSCATED`, sets alphanumeric characters to `?`.                                                                                                                                                                                                                                                       |
| [Audit mode](https://docs.newrelic.com/docs/agents/manage-apm-agents/configuration/log-audit-all-data-your-new-relic-agent-transmits) | The audit log is a plain text logging of all data sent to New Relic by the C SDK. When [starting the C SDK daemon](https://docs.newrelic.com/docs/agents/c-sdk/install-configure/install-c-sdk-compile-link-your-code#daemon), add `-auditlog <file>` to the daemon configuration file. For example: ````sh ./newrelic-daemon -f -logfile stdout -loglevel debug -auditlog audit.log ```  <Callout variant="tip">   To see all of the available options for the C daemon: At the command line, type:    ```sh   ./newrelic-daemon --help   ``` </Callout>  ````                          |

## Customize security settings [#customize]

If the default settings do not work for your business needs, you can customize how information is sent to New Relic by altering the [`newrelic_datastore_segment_config_t`](https://newrelic.github.io/c-sdk/structnewrelic__datastore__segment__config__t.html) and the [`newrelic_transaction_tracer_config_t`](https://newrelic.github.io/c-sdk/structnewrelic__transaction__tracer__config__t.html).

> #### ⚠️ CAUTION
>
> If you customize your configuration, it may impact the security of your application.
