Файл конфигурации реализации Segment.io и mixpanel для производственных и непроизводственных сред?

Любые идеи о том, как внедрить аналитику Mixpanel через segment.io, которая может отслеживать все рабочие и непроизводственные среды.

Прямо сейчас я создал 3 разных проекта (разработка, постановка и производство) на mixpanel и segment.io. И отслеживание их. Но когда я меняю код разработки и перехожу к подготовке и производству, он перезаписывает основной код аналитики.

Я не использую рубин... Я использую javascript. Какие-либо предложения? Будет ли работать конфигурационный файл, заменяющий токен?


person monical    schedule 14.10.2013    source источник


Ответы (3)


Спасибо. Я провел небольшое исследование. У меня есть более простой способ реализовать это, если кто-то не знаком с файлами конфигурации или не имеет доступа к этим файлам.

У меня может быть условие if, которое я могу использовать при инициализации ввода/вывода сегмента.

    var apikey;
    if (window.location.host === "dev.xyz.com") {
        apikey = <api_key>;
    } else if (window.location.host === "staging.xyz.com") {
        apikey = <api_key>;
    } else if (window.location.host === "prod.com") {
        apikey = <api_key>;
    } 

    analytics.load(apikey);

Замените соответствующими ключами api_keys из сегмента I/O. Это хорошо работает.

person monical    schedule 22.10.2013
comment
Недостатком этого подхода является то, что вы предоставляете общественности слишком много информации о вашей внутренней реализации. - person Hady; 06.03.2015

Файл конфигурации, который заменяет токены, является идеальным решением.

Вы захотите сделать что-то подобное во фрагменте javascript:

analytics.load("<%= config.segmentio.apiKey %>");

Где config — это ваши настройки разработчика на вашем компьютере для разработки, а также настройки staging/prod на staging и prod.

person reinpk    schedule 18.10.2013

Я бы предложил, чтобы на этапе сборки вы запекали переменную конфигурации, которая идентифицирует среду, в которой выполняется ваш код, например. ['Dev', 'Staging', 'Production'].

Затем вы должны сделать что-то похожее на то, что предложил @monical, за исключением того, что не используете URL-адреса в миксе:

var token;

switch(environment) {
   case 'Staging':
      token = 'TOKEN_STAGE';
      break;
   case 'Production':
      token = 'TOKEN_PROD';
      break;
   default:
      token = 'TOKEN_DEV';
}

analytics.load(token);
person Hady    schedule 06.03.2015