小编Vyt*_*nas的帖子

定制Cassandra转换器

我开始寻找一个很好的解决方案,如何使用Spring CassandraOperations很好地持久化实体.问题开始是因为我的实体中的某些字段不支持cassandra,例如joda DateTime.

解决方法是在java.util.Date类型的同一实体中使用其他字段而不是joda DateTime,使用@Transient标记不需要的字段.但这不干净,所以我开始寻找自动自定义转换.

目前spring-data-cassandra参考文献没有提供如何注册自定义转换器的信息.http://docs.spring.io/spring-data/cassandra/docs/current/reference/html/#cassandra.custom-converters

是否可以在CassandraSessionFactoryBean中注册自定义转换器(如此处为Spring Data Cassandra LocalDateTime Conversion)?

这是我的代码@Configuration public class CassandraConfig {

@Value("${cassandra.contactpoints}")
private String cassandraContactPoint;

@Value("${cassandra.port}")
private int cassandraPort;

@Value("${cassandra.keyspace}")
private String cassandraKeySpace;

@Bean
public CassandraClusterFactoryBean cluster() {

    CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
    cluster.setContactPoints(cassandraContactPoint);
    cluster.setPort(cassandraPort);

    return cluster;
}

@Bean
public CassandraMappingContext mappingContext() {
    return new BasicCassandraMappingContext();
}

@Bean
public CassandraConverter converter() {
    return new MappingCassandraConverter(mappingContext());
}

@Bean
public CassandraSessionFactoryBean session() throws Exception {
    CassandraSessionFactoryBean session = new CassandraSessionFactoryBean();
    session.setCluster(cluster().getObject());
    session.setKeyspaceName(cassandraKeySpace);
    session.setConverter(converter());
    session.setSchemaAction(SchemaAction.NONE); …
Run Code Online (Sandbox Code Playgroud)

spring spring-data spring-data-cassandra

7
推荐指数
1
解决办法
2281
查看次数

使用Grafana获取多个节点的可用磁盘空间百分比

我使用Grafana(v2.1.3)进行指标可视化.指标来自collectd收集的Graphite.目标图形是显示自由磁盘空间百分比多个节点,例如假设文件夹是/ data,因此表示以字节为单位的可用空间的度量标准是:

collectd.$node.df-data.df_complex-free
Run Code Online (Sandbox Code Playgroud)

表示总空间的指标是以下总和:

collectd.$node.df-data.*
Run Code Online (Sandbox Code Playgroud)

所以,我有以下配置:

Series A: collectd.$node.df-data.df_complex-free (Invisible)
Series B: collectd.$node.df-data.* (Invisible)
Series C: alias(asPercent(#A, sumSeries(#B)), 'Free space')
Run Code Online (Sandbox Code Playgroud)

这里$ node是一个从下拉列表中选择的变量(All,node1,node2,node3等).它的工作原理当选择一个特定节点如预期,但错误的所有选项被选中,(例如,如果每个节点的比例为〜95%,那么当所有被选中的24%显示).

另一种选择(可能更可取:

Series A: collectd.$node.df-data.df_complex-free
Series B: groupByNode(collectd.$node.df-data.*, 1, 'sum')
Series C: scale(divideSeries(#A, #B), 100)
Run Code Online (Sandbox Code Playgroud)

同样对于单个节点它很好,但是一旦选择了"所有节点"选项,则显示以下错误:

divideSeries第二个参数必须正好引用1个系列

有任何想法吗?我相信应该有简单的解决方案.

metrics collectd grafana

5
推荐指数
1
解决办法
3089
查看次数