Analytics: RudderStack custom URLs to fetch SDK and Config (#41988)

* Add config options to provide custom URL to fetch Rudderstack SDK and Config

* Add new entries to defaults.ini

* Update docs
This commit is contained in:
William Assis 2021-12-06 11:42:29 -03:00 committed by GitHub
parent b6818718e9
commit eab0ba8716
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 51 additions and 2 deletions

View File

@ -208,6 +208,12 @@ rudderstack_write_key =
# Rudderstack data plane url, enabled only if rudderstack_write_key is also set
rudderstack_data_plane_url =
# Rudderstack SDK url, optional, only valid if rudderstack_write_key and rudderstack_data_plane_url is also set
rudderstack_sdk_url =
# Rudderstack Config url, optional, used by Rudderstack SDK to fetch source config
rudderstack_config_url =
# Application Insights connection string. Specify an URL string to enable this feature.
application_insights_connection_string =

View File

@ -208,6 +208,18 @@
# Google Tag Manager ID, only enabled if you specify an id here
;google_tag_manager_id =
# Rudderstack write key, enabled only if rudderstack_data_plane_url is also set
;rudderstack_write_key =
# Rudderstack data plane url, enabled only if rudderstack_write_key is also set
;rudderstack_data_plane_url =
# Rudderstack SDK url, optional, only valid if rudderstack_write_key and rudderstack_data_plane_url is also set
;rudderstack_sdk_url =
# Rudderstack Config url, optional, used by Rudderstack SDK to fetch source config
;rudderstack_config_url =
#################################### Security ####################################
[security]
# disable creation of admin user on first start of grafana

View File

@ -464,6 +464,27 @@ Analytics ID here. By default this feature is disabled.
Google Tag Manager ID, only enabled if you enter an ID here.
### rudderstack_write_key
If you want to track Grafana usage via Rudderstack specify _your_ Rudderstack
Write Key here. The `rudderstack_data_plane_url` must also be provided for this
feature to be enabled. By default this feature is disabled.
### rudderstack_data_plane_url
Rudderstack data plane url that will receive Rudderstack events. The
`rudderstack_write_key` must also be provided for this feature to be enabled.
### rudderstack_sdk_url
Optional. If tracking with Rudderstack is enabled, you can provide a custom
URL to load the Rudderstack SDK.
### rudderstack_config_url
Optional. If tracking with Rudderstack is enabled, you can provide a custom
URL to load the Rudderstack config.
### application_insights_connection_string
If you want to track Grafana usage via Azure Application Insights, then specify _your_ Application Insights connection string. Since the connection string contains semicolons, you need to wrap it in backticks (`). By default, tracking usage is disabled.

View File

@ -233,6 +233,8 @@ func (hs *HTTPServer) getFrontendSettingsMap(c *models.ReqContext) (map[string]i
"googleAnalyticsId": setting.GoogleAnalyticsId,
"rudderstackWriteKey": setting.RudderstackWriteKey,
"rudderstackDataPlaneUrl": setting.RudderstackDataPlaneUrl,
"rudderstackSdkUrl": setting.RudderstackSdkUrl,
"rudderstackConfigUrl": setting.RudderstackConfigUrl,
"applicationInsightsConnectionString": hs.Cfg.ApplicationInsightsConnectionString,
"applicationInsightsEndpointUrl": hs.Cfg.ApplicationInsightsEndpointUrl,
"disableLoginForm": setting.DisableLoginForm,

View File

@ -143,6 +143,8 @@ var (
GoogleTagManagerId string
RudderstackDataPlaneUrl string
RudderstackWriteKey string
RudderstackSdkUrl string
RudderstackConfigUrl string
// LDAP
LDAPEnabled bool
@ -945,6 +947,8 @@ func (cfg *Cfg) Load(args CommandLineArgs) error {
GoogleTagManagerId = analytics.Key("google_tag_manager_id").String()
RudderstackWriteKey = analytics.Key("rudderstack_write_key").String()
RudderstackDataPlaneUrl = analytics.Key("rudderstack_data_plane_url").String()
RudderstackSdkUrl = analytics.Key("rudderstack_sdk_url").String()
RudderstackConfigUrl = analytics.Key("rudderstack_config_url").String()
cfg.ReportingEnabled = analytics.Key("reporting_enabled").MustBool(true)
cfg.ReportingDistributor = analytics.Key("reporting_distributor").MustString("grafana-labs")
if len(cfg.ReportingDistributor) >= 100 {

View File

@ -210,6 +210,8 @@ function initEchoSrv() {
writeKey: (config as any).rudderstackWriteKey,
dataPlaneUrl: (config as any).rudderstackDataPlaneUrl,
user: config.bootData.user,
sdkUrl: (config as any).rudderstackSdkUrl,
configUrl: (config as any).rudderstackConfigUrl,
})
);
}

View File

@ -6,13 +6,15 @@ export interface RudderstackBackendOptions {
writeKey: string;
dataPlaneUrl: string;
user?: User;
sdkUrl?: string;
configUrl?: string;
}
export class RudderstackBackend implements EchoBackend<PageviewEchoEvent, RudderstackBackendOptions> {
supportedEvents = [EchoEventType.Pageview, EchoEventType.Interaction];
constructor(public options: RudderstackBackendOptions) {
const url = `https://cdn.rudderlabs.com/v1/rudder-analytics.min.js`;
const url = options.sdkUrl || `https://cdn.rudderlabs.com/v1/rudder-analytics.min.js`;
$.ajax({
url,
@ -45,7 +47,7 @@ export class RudderstackBackend implements EchoBackend<PageviewEchoEvent, Rudder
})(method);
}
(rds as any).load(options.writeKey, options.dataPlaneUrl);
(rds as any).load(options.writeKey, options.dataPlaneUrl, { configUrl: options.configUrl });
if (options.user) {
(rds as any).identify(options.user.email, {