• Stars
    star
    269
  • Rank 152,662 (Top 4 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated about 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

帮助了解和控制应用

Cornerstone(基石)

License

Cornerstone(基石)是携程框架部门研发的内部可视化组件VI的开源版本,VI产品创意来源于ebay同名产品VI,VI是validation internals的缩写,字面意思可以理解为“内部验证”。你可以将VI理解为应用的窗口。 VI的一个目标就是把原本的应用黑盒子,变成一个透明的盒子。 在携程,VI主要是一个应用及应用相关环境的可视化工具,和应用健康状态及启动管理的工具(目前已是ctrip集团健康检测和点火标准)。 将开源版本命名为cornerstone是希望在这个组件里解决更多的基础问题,让开发和运营更简单和高效。

Features

  • 无中心,无强依赖(仅强依赖slf4j和gson)
  • 小而独立
  • 寄生在应用里
  • WEB展示和数据收集都在一个组件里
  • 数据实时
  • 数据覆盖面广(目标是暴露应用相关的一切)
  • 对应用影响小(不访问时,不消耗运行资源)
  • 极强扩展性
  • 启动管理
  • 缓存管理
  • 日志查看
  • GC日志分析
  • 多环境配置管理
  • 大部分jdk tool web化
  • 支持无埋点实时metrics
  • 支持无埋点实时"debug"

和JMX的关系

  • cornerstone里使用大量标准jmx mbean获取数据,并提供自动将特有的component status类(极易使用)转换为mbean并注册(大大简化mbean开发成本)。
  • 和jconsole以及jvisualvm 比的优势:
    • 使用公司sso认证
    • 无需应用开启额外端口.
    • 图形展示上更灵活
    • 数据更丰富

何时需要Cornerstone

当想了解应用健康状况。当想了解应用启动过程。当想了解使用组件的运行情况时。当需要定位问题时。当你需要暴露应用运行数据时。当想了解应用各类资源占用情况时。当想查找各类配置时。当需要给应用性能调优时 。。。 总之,你所关心应用运行的一切,都可以通过这个窗口了解和控制。

如何使用

(特别注意:目前VI只支持JDK>=1.7应用)

  • 任何java应用都可以接入VI,VI接入有两种模式,寄生模式和自主模式。
    寄生模式VI会寄生在已有的WEB容器里,不需要新开端口。
    自主模式,等于在应用上启动一个http协议的web服务。

  • VI主要功能演示都在cornerstone-example子项目中。
    这是一个web项目,将编译后的war包部署到tomcat里即可运行,例如将这个war包部署在本地的端口为8080的tomcat服务器,访问路径为http://localhost:8080/cornerstone-example-0/@in。

  • 想快速了解VI,可以使用spring boot example项目, 运行简单,使用方便

    • mvn方式: 在项目根目录运行 mvn -pl spring-boot-example spring-boot:run 即运行了一个含VI的spring boot应用。
      运行端口为9090,可以使用http://localhost:9090/@in 来访问VI。
    • IDE方式: 直接运行项目中ServiceStarter.java 的main方法,来运行或调试。
  • 下面主要介绍寄生模式(自主模式可以参考cornerstone-server里的测试用例)
    web和spring项目只需依赖vi的jar包即可使用。可以自己编译cornerstone子模块得到jar包,也可以使用预编译好的jar包(寄生模式)

    当web或spring boot应用使用默认的寄生模式接入VI后,VI会接管[应用路径]/@in的路径。
    例如tomcat应用,如果部署完成后的访问根路径为http://localhost/tomcat-demo, 那么可以使用 http://localhost/tomcat-demo/@in 来访问VI。

Screenshots

默认界面 启动日志 实时metrics 动态埋点 GC日志分析

Developers

License

The project is licensed under the Apache 2 license.

More Repositories

1

C-OCR

C-OCR是携程自研的OCR项目,主要包括身份证、护照、火车票、签证等旅游相关证件、材料的识别。 项目包含4个部分,拒识、检测、识别、后处理。
Java
2,373
star
2

x-pipe

X-Pipe是由携程框架部门研发的Redis多数据中心复制管理系统。基于Redis的Master-Slave复制协议,实现低延时、高可用的Redis多数据中心、跨公网数据复制,并且提供一键机房切换,复制监控、异常报警等功能。开源版本和携程内部生产环境版本一致。
Java
2,001
star
3

CRN

CRN是Ctrip React Native简称,由携程无线平台研发团队基于React Native框架优化,定制成稳定性和性能更佳、也更适合业务场景的跨平台开发框架。
JavaScript
1,457
star
4

dal

Ctrip Database Access Layer
Java
1,246
star
5

flybirds

基于自然语言的,跨端跨框架 BDD UI 自动化测试方案,BDD testing, Python style, Present by Trip Flight
Python
844
star
6

moles-packer

moles-packer 是由携程框架团队研发的,与携程moles框架配套使用的React Native 打包和拆包工具,同时支持原生的 React Native 项目。
JavaScript
721
star
7

wean

🍀 Super fast miniapp compiler.
JavaScript
390
star
8

tars

携程下一代发布系统
JavaScript
365
star
9

SQLlin

A DSL ORM library for Kotlin Multiplatform.
C
218
star
10

tripdocs

TripDocsSDK是基于携程内部在线文档编辑器内核,提炼的一款通用的,现代的、稳定的、支持协同的、可用于生产环境的在线文档编辑器
TypeScript
159
star
11

dataworks-zeus

Ctrip Hadoop Job Scheduling System derived from https://github.com/alibaba/zeus
Java
153
star
12

nephele

Image Service
Go
145
star
13

mmkv-kotlin

A Kotlin Multiplatform porting for MMKV.
Kotlin
130
star
14

drc

Java
127
star
15

hermes

Message Queue Solution at Ctrip.com
Java
85
star
16

cat.net

.Net Client of CAT
C#
69
star
17

zeus

Soft Load Balancer at ctrip.com
JavaScript
55
star
18

kbear

Enterprise Kafka Solution
Java
51
star
19

artemis

artemis
Java
41
star
20

caravan

Caravan
Java
34
star
21

cat.js

Javascript client of CAT
JavaScript
29
star
22

ghost

A set of go tools with simple construction and powerful features.
Go
18
star
23

xredis-crdt

C
11
star
24

caravan.net

caravan.net
C#
9
star
25

crdt-module

C
8
star
26

chystrix.net

chystrix.net
C#
7
star
27

homer

Go
6
star
28

TripLink

TripLink
Java
5
star
29

artemis.net

artemis.net
C#
4
star
30

hermes.js

hermes client for javascript
4
star
31

kvrocks

kvrocks
2
star
32

venus

Dependency Injection Framework for .NET
1
star
33

ares-ceph

1
star
34

react-native-cba

react-native-cba
1
star