概要
RUM モバイル SDK は、プロキシを介してリクエストを送信するように構成できます。
プロキシは、Android では OkHttpClient Proxy and Authenticator を、iOS では URLSessionConfiguration.connectionProxyDictionary を使用します。
HTTP/HTTPS プロキシ
Prerequisite proxy setup
リクエストを Datadog に正常に転送するには、プロキシが HTTP CONNECT をサポートしている必要があります。
Recommended SDK setup
Android SDK の初期化時に、以下のプロキシ構成を指定します。
val configBuilder = Configuration.Builder(
clientToken = "<client token>",
env = "<environment>"
)
val proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress("<www.example.com>", <123>))
val authenticator = ProxyAuthenticator("<proxy user>", "<proxy password>")
configBuilder.setProxy(proxy, authenticator)
詳細については、OkHttpClient の Proxy と Authenticatorのドキュメントを参照してください。
iOS SDK の初期化時に、以下のプロキシ構成を指定します。
Swift
import DatadogCore
Datadog.initialize(
with: Datadog.Configuration(
clientToken: "<client token>",
env: "<environment>",
proxyConfiguration: [
kCFNetworkProxiesHTTPEnable: true,
kCFNetworkProxiesHTTPPort: <123>,
kCFNetworkProxiesHTTPProxy: "<www.example.com>",
kCFProxyUsernameKey: "<proxy user>",
kCFProxyPasswordKey: "<proxy password>"
]
),
trackingConsent: trackingConsent
)
Objective C
@import DatadogObjc;
DDConfiguration *configuration = [[DDConfiguration alloc] initWithClientToken:@"<client token>" env:@"<environment>"];
configuration.proxyConfiguration = @{
(NSString *)kCFNetworkProxiesHTTPEnable: @YES,
(NSString *)kCFNetworkProxiesHTTPPort: @<123>,
(NSString *)kCFNetworkProxiesHTTPProxy: @"<www.example.com>",
(NSString *)kCFProxyUsernameKey: @"<proxyuser>",
(NSString *)kCFProxyPasswordKey: @"<proxypass>"
};
[DDDatadog initializeWithConfiguration:configuration
trackingConsent:trackingConsent];
詳しくは、URLSessionConfiguration.connectionProxyDictionary のドキュメントを参照してください。
React Native SDK の初期化時に、以下のプロキシ構成を指定します。
import { DatadogProviderConfiguration, ProxyConfiguration, ProxyType } from '@datadog/mobile-react-native';
const config = new DatadogProviderConfiguration('<client token>', '<environment>', '<application id>');
config.proxyConfig = new ProxyConfiguration(ProxyType.HTTPS, '<www.example.com>', <123>, '<proxy user>', '<proxy password>');
SOCKS プロキシ
Prerequisite proxy setup
リクエストを Datadog に正常に転送するには、プロキシが SOCKS5 プロキシをサポートしている必要があります。
Recommended SDK setup
Android SDK の初期化時に、以下のプロキシ構成を指定します。
val configBuilder = Configuration.Builder(
clientToken = "<client token>",
env = "<environment>"
)
val proxy = Proxy(Proxy.Type.SOCKS, InetSocketAddress("<www.example.com>", <123>))
val authenticator = ProxyAuthenticator("<proxy user>", "<proxy password>")
configBuilder.setProxy(proxy, authenticator)
詳細については、OkHttpClient の Proxy と Authenticatorのドキュメントを参照してください。
iOS SDK の初期化時に、以下のプロキシ構成を指定します。
Swift
import DatadogCore
Datadog.initialize(
with: Datadog.Configuration(
clientToken: "<client token>",
env: "<environment>",
proxyConfiguration: [
kCFNetworkProxiesSOCKSEnable: true,
kCFNetworkProxiesSOCKSPort: <123>,
kCFNetworkProxiesSOCKSProxy: "<www.example.com>",
kCFProxyUsernameKey: "<proxy user>",
kCFProxyPasswordKey: "<proxy password>"
]
),
trackingConsent: trackingConsent
)
Objective C
@import DatadogObjc;
DDConfiguration *configuration = [[DDConfiguration alloc] initWithClientToken:@"<client token>" env:@"<environment>"];
configuration.proxyConfiguration = @{
(NSString *)kCFNetworkProxiesSOCKSEnable: @YES,
(NSString *)kCFNetworkProxiesSOCKSPort: @<123>,
(NSString *)kCFNetworkProxiesSOCKSProxy: @"<www.example.com>",
(NSString *)kCFProxyUsernameKey: @"<proxyuser>",
(NSString *)kCFProxyPasswordKey: @"<proxypass>"
};
[DDDatadog initializeWithConfiguration:configuration
trackingConsent:trackingConsent];
詳しくは、URLSessionConfiguration.connectionProxyDictionary のドキュメントを参照してください。
React Native SDK の初期化時に、以下のプロキシ構成を指定します。
import { DatadogProviderConfiguration, ProxyConfiguration, ProxyType } from '@datadog/mobile-react-native';
const config = new DatadogProviderConfiguration('<client token>', '<environment>', '<application id>');
config.proxyConfig = new ProxyConfiguration(ProxyType.SOCKS, '<www.example.com>', <123>, '<proxy user>', '<proxy password>');
その他の参考資料