Skip to content

Druid metrics

Archived (pre-2022)

Preserved for reference only -- likely outdated. View original | Last updated: November 2018

imply-query-prd1

[root@ip-172-31-217-171 ~]# crontab -l
#Ansible: imply
*/5 * * * * /usr/sbin/logrotate /etc/logrotate.d/imply

* * * * * aws s3 sync --size-only /home/imply/imply-2.0.0/var/sv/metric  s3://fyber.druid-prd1-eu-west-1/metric

*/5 * * * * find /home/imply/imply-2.0.0/var/sv/metric/ -mindepth 5 -mmin +90 -name "*.gz" -delete
cat /home/imply/imply-2.0.0/conf/druid/_common/log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
   <Appenders>
      <Console name="Console" target="SYSTEM_OUT">
         <PatternLayout pattern="%d{ISO8601} %p [%t] %c - %m%n" />
      </Console>
      <!-- BEGIN ANSIBLE MANAGED BLOCK 1 -->
      <File name="FileError" fileName="var/sv/error.log">
         <PatternLayout pattern="%d{ISO8601} data %p %c [%t] %m %throwable{separator(|)}%n" />
      </File>
      <Async name="ASYNC_1">
         <AppenderRef ref="FileError" />
      </Async>

      <RollingFile name="FileMetric" fileName="var/sv/metric.log" filePattern="var/sv/metric/year=%d{yyyy}/month=%d{MM}/day=%d{dd}/hour=%d{HH}/metric-i-23145-%i-%d{mm}.log.gz">
         <PatternLayout>
            <replace regex="^.{0,7}|.$" replacement=""/>
            <replace regex="feed" replacement="food"/>
            <pattern>%m%n</pattern>
          </PatternLayout>

         <filter class="org.apache.log4j.varia.LevelRangeFilter">
              <param name="levelMin" value="DEBUG" />
              <param name="levelMax" value="INFO" />
        </filter>

        <Policies>
          <OnStartupTriggeringPolicy />
          <TimeBasedTriggeringPolicy interval="60" modulate="true"/>
          <SizeBasedTriggeringPolicy size="100 MB"/>
        </Policies>
         <!--RegexFilter regex=".* LoggingEmitter .*" onMatch="ACCEPT" onMismatch="DENY"/-->
      </RollingFile>

      <Async name="ASYNC_Metric">
         <AppenderRef ref="FileMetric" />
      </Async>
      <!-- END ANSIBLE MANAGED BLOCK 1 -->
   </Appenders>
   <Loggers>
      <Root level="debug">
         <AppenderRef ref="Console" level="info" />
         <!-- BEGIN ANSIBLE MANAGED BLOCK 2 -->
         <AppenderRef ref="ASYNC_1" level="error" />
         <!-- END ANSIBLE MANAGED BLOCK 2 -->
      </Root>
      <logger name="com.metamx.emitter.core.LoggingEmitter" additivity="false">
        <level value="debug" />
        <appender-ref ref="ASYNC_Metric" />
      </logger>
   </Loggers>
</Configuration>
cat /home/imply/imply-2.0.0/conf/druid/_common/common.runtime.properties

# Monitoring

druid.monitoring.monitors=["com.metamx.metrics.JvmMonitor"]
druid.emitter=logging
druid.emitter.logging.logLevel=debug
# BEGIN ANSIBLE MANAGED BLOCK
druid.emitter.graphite.eventConverter={"type":"whiteList", "namespacePrefix": "druid-prd1", "mapPath":"defaultWhiteListMap.json"}
druid.emitter.graphite.hostname=graphite.druid-prd1.fyber
druid.emitter.graphite.port=2004
druid.monitoring.emissionPeriod=PT1s
# END ANSIBLE MANAGED BLOCK

TODO

Ask dev team to create script, which creates ingestion tasks each hour on fyber.druid-prd1-eu-west-1/metric.