配置Kamon
Kamon使用Typesafe Config库管理kamon的所有配置,就像许多JVM项目已经使用的那样。这个配置库有清晰和使用的应用程序定义并且,Typesafe Config库的设置可以很容易的理解和扩展。如果你已经很熟悉这个库了,请跳到下一节。
Typesafe Config的标准工作状态直观,我们为你阐述:当你用ConfigFactory.load()方法创建一个配置对象时,他将从预先定义的路径下读取配置文件,并做好准备。所以,无论你什么时候想要去读配置,他们都将以下面的顺序调用文件。
- JVM 系统属性
- classpath下的所有application.conf文件
- classpath下的所有application.json文件
- classpath下的所有application.properties文件
- classpath下的所有reference.conf文件
每个使用Typesafe Config库的配置库都会和一个包含了系统所有默认配置的 reference.conf 搭配,用户可以通过使用自己的application.conf文件覆盖这些默认值。或通过系统属性覆盖。或许你将形成这样一副优先级检查顺序画面:
这些配置文件通常使用HOCON标记书写。所有需要配置的Kamon模块都和一个 包含了默认配置的reference.conf 文件关联,你可以通过你自己的application.conf文件复写其中的任何默认值。无论什么时候,我们都通过这些配置文件读取配置。我们当然在每个模块的reference.conf文件中包含了配置,你可以随意复写。
这个简介仅仅是Typesafe Config库能为你做的配置的概述,请参考他们的文档学习如何分块书写配置。
提供通用的Config对象
如果你不需要使用kamon提供的标准调用ConfigFactory.load(),还有其他方法可以加载Kamon.start(…)方法.它接收一个配置对象。你可以这样提供通用的配置对象:
Scala:
object CustomConfiguration {
val customConfig = ConfigFactory.load("custom-config")
val codeConfig = ConfigFactory.parseString(
"kamon.metric.track-unmatched-entities = no")
Kamon.start(codeConfig.withFallback(customConfig))
// Kamon gets initialized with the provided configuration rather
// than calling ConfigFactory.load() itself.
// This application wont terminate unless you shutdown Kamon.
Kamon.shutdown()
}
Java:
public class CustomConfiguration {
public static void main(String[] args) {
final Config customConfig = ConfigFactory.load("custom-config");
final Config codeConfig = ConfigFactory.parseString(
"kamon.metric.track-unmatched-entities = no");
Kamon.start(codeConfig.withFallback(customConfig));
// Kamon gets initialized with the provided configuration rather
// than calling ConfigFactory.load() itself.
// This application wont terminate unless you shutdown Kamon.
Kamon.shutdown();
}
}
注意:当你提供自己的Config对象时,Kamon将使用它,并且,仅仅使用它作为配置源文件。你必须保证你的classpath下有你提供的Config对象中包含通用配置和引用设定。Typesafe Config的ConfigFactory中的大多数API都有配置,如果没有,只需要将.withFallback(ConfigFactory.defaultreference())记载配置对象后边,这样就能确保kamon的所有配置都被配置。
Akka和Spray的特殊配置
//TODO 由于目前我没有用到这两个模块,先不翻译,以后有空了再翻译。
本文介绍了Kamon使用TypesafeConfig库进行配置管理的方法。包括配置文件的加载顺序、优先级及如何自定义配置等内容。
982

被折叠的 条评论
为什么被折叠?



