2015-04-03 5 views
0

Я застрял в создании пользовательских отчетов, используя Collect Collector.apigee statistic collector/custom reports not working

Мой сценарий,

У меня есть Баас DB с коллекцией под названием «icustomer», который имеет несколько имя/значение пары.

Я создал прокси (icustomer), чтобы отобразить конкретного клиента (Resource name specificCust) в зависимости от уникального «cust_id».

Для конкретного клиента я «извлекал переменную и назначал политики переменных», которая работает нормально.

Теперь, чтобы получить пользовательские отчеты, я снова добавил политику Извлечь переменную, чтобы извлечь cust_id из JSON Path, а затем добавил и Statistic Collector для получения статистики.

Затем я создал новый отчет от Analytics и сохранил его. Но отчеты не генерируются. Все, что я получаю, это отчет «NO_ID».

Где я ошибся?

Proxy Endpoint Код

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<ProxyEndpoint name="default"> 
    <Description/> 
<PreFlow name="PreFlow"> 
    <Request/> 
    <Response/> 
</PreFlow> 
<Flows> 
    <Flow name="specficcust"> 
     <Description/> 
     <Request/> 
     <Response/> 
     <Condition>(proxy.pathsuffix MatchesPath &quot;/{cust_id}&quot;) and (request.verb = &quot;GET&quot;)</Condition> 
    </Flow> 
</Flows> 
<PostFlow name="PostFlow"> 
    <Request/> 
    <Response/> 
</PostFlow> 
<HTTPProxyConnection> 
    <BasePath>/icustomer</BasePath> 
    <VirtualHost>default</VirtualHost> 
    <VirtualHost>secure</VirtualHost> 
</HTTPProxyConnection> 
<RouteRule name="default"> 
    <TargetEndpoint>default</TargetEndpoint> 
</RouteRule> 
</ProxyEndpoint> 

Target Endpoint Код

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<TargetEndpoint name="default"> 
<Description/> 
<PreFlow name="PreFlow"> 
    <Request/> 
    <Response/> 
</PreFlow> 
<Flows> 
    <Flow name="specficcust"> 
     <Description/> 
     <Request> 
      <Step> 
       <FaultRules/> 
       <Name>Extract-Variables-1</Name> 
      </Step> 
      <Step> 
       <FaultRules/> 
       <Name>Assign-Message-1</Name> 
      </Step> 
     </Request> 
     <Condition>(proxy.pathsuffix MatchesPath &quot;/{cust_id}&quot;) and (request.verb = &quot;GET&quot;)</Condition> 
     <Response/> 
    </Flow> 
</Flows> 
<PostFlow name="PostFlow"> 
    <Response> 
     <Step> 
      <FaultRules/> 
      <Name>Extracting-for-Stats</Name> 
     </Step> 
     <Step> 
      <FaultRules/> 
      <Name>Statistics-Collector-1</Name> 
     </Step> 
    </Response> 
    <Request/> 
</PostFlow> 
<HTTPTargetConnection> 
    <URL>https://api.usergrid.com/siddharth1/sandbox/icustomer</URL> 
</HTTPTargetConnection> 
</TargetEndpoint> 

Распаковка для Статистика code-

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<ExtractVariables async="false" continueOnError="false" enabled="true"  name="Extracting-for-Stats"> 
<DisplayName>Extracting for Stats</DisplayName> 
<FaultRules/> 
<Properties/> 
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> 
<JSONPayload> 
    <Variable name="customer_id"> 
     <JSONPath>$.entities[0].cust_id</JSONPath> 
    </Variable> 
</JSONPayload> 
<Source clearPayload="false">response</Source> 
<VariablePrefix>apigee</VariablePrefix> 

</ExtractVariables> 

Статистика Collector code-

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1"> 
<DisplayName>Statistics Collector 1</DisplayName> 
<FaultRules/> 
<Properties/> 
<Statistics> 
    <Statistic name="test_cust_id" ref="customer_id" type="STRING">NO_ID</Statistic> 
</Statistics> 
</StatisticsCollector> 

ответ

0

В файле ExtractVariables указано значение переменной VariablePrefix из «apigee». Я ожидал бы, что извлеченное поле будет доступно с apigee.customer_id, а не только customer_id, которое вернет null в контроле StatisticsCollector. Я думаю, именно поэтому вы получаете свой «NO_ID» по умолчанию.

+0

Я попытался «apigee.customer_id» все еще я получаю по умолчанию «NO_ID» в пользовательских отчетах. Я даже пробовал только «customer_id», который дает «не установлен» в пользовательских отчетах. –

+0

Я прокомментировал VariablePrefix и отчеты работают. Я получаю отчеты, но из 10 отчетов несколько отчетов отображаются как «не установлены». –

+0

Если по какой-либо причине ваш вызов 'https: // api.usergrid.com/siddharth1/sandbox/icustomer' не работает, вы будете прыгать к FaultRules вместо продолжения с PostFlow, и вы никогда не достигнете своей политики StatisticsCollector. Политики StatisticCollector можно применять в своих прокси-серверах и в целевых правилах сбоев, чтобы убедиться, что они всегда попадают, если хотите. –