Skip to content

Instantly share code, notes, and snippets.

@wutingjia
Last active May 31, 2019 02:50
Show Gist options
  • Save wutingjia/02a3043c8ab7a68fcc631de7db7e25b1 to your computer and use it in GitHub Desktop.
Save wutingjia/02a3043c8ab7a68fcc631de7db7e25b1 to your computer and use it in GitHub Desktop.
Skywalking

Skywalking

skywalking 是一个全链路监控系统,用于分析和串起微服务间的各种指标。主要有三部分构成:探针、后端、前端UI. 1、探针 探针就是一个agent,随着spring容器的启动而一起启动。类似AspectJ通过操作字节码达到效果。 agent.config:

agent.service_name=${SW_AGENT_NAME} #显示的服务名
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES} #后端的Ip地址
logging.level=${SW_LOGGING_LEVEL:DEBUG}

启动参数:

-javaagent:/ifsps/agent/skywalking-agent.jar -Dskywalking.agent.service_name=aaa

2、后端 application.yml 主要配置

cluster:
  standalone:
core:
  default:

    role: ${SW_CORE_ROLE:Mixed} # Mixed/Receiver/Aggregator
    restHost: ${SW_CORE_REST_HOST:0.0.0.0}
    restPort: ${SW_CORE_REST_PORT:12800}
    restContextPath: ${SW_CORE_REST_CONTEXT_PATH:/}
    gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0}
    gRPCPort: ${SW_CORE_GRPC_PORT:11800}
    downsampling:
    - Hour
    - Day
    - Month

    # TTL为各种数据过期时间
    recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:2880} # Unit is minute
    minuteMetricsDataTTL: ${SW_CORE_MINUTE_METRIC_DATA_TTL:90} # Unit is minute
    hourMetricsDataTTL: ${SW_CORE_HOUR_METRIC_DATA_TTL:36} # Unit is hour
    dayMetricsDataTTL: ${SW_CORE_DAY_METRIC_DATA_TTL:45} # Unit is day
    monthMetricsDataTTL: ${SW_CORE_MONTH_METRIC_DATA_TTL:18} # Unit is month

#使用ES作为数据存储
storage:
  elasticsearch:
    nameSpace: ${SW_NAMESPACE:"skywalking"} #名字要和ES的cluster.name一致
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:}

3、前端 可以使用默认配置,直接打开前端页面即可。

与ELK体系的融合

关键点在于traceId skywalking中使用traceID来串联整个链路的交易,可以通过将这个ID打印进日志达到关联的目的。

<dependency>
  <groupId>org.apache.skywalking</groupId>
  <artifactId>apm-toolkit-trace</artifactId>
  <version>6.0.0-GA</version>
</dependency>


@Trace
@Around("logPrint()")
public Object AroundFoo(ProceedingJoinPoint jp) throws Throwable {
   String traceId=TraceContext.traceId();
}     
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment