Datastax opscenter 升级无法显示统计信息

Datastax opscenter upgrade fails to display stats

我昨天将 Opscenter 从 5.1.2 升级到 5.2.0,现在仪表板上的 none 个图表显示了任何统计信息。

我的集群是 datastax enterprise 4.5.1,版本如下:

cqlsh 4.1.1 | Cassandra 2.0.8.39 | CQL spec 3.1.1 | Thrift protocol 19.39.0

我将此集群用于 solr 的搜索工作负载。 agent.log 填充如下:

INFO [qtp1313948736-24] 2015-08-06 12:30:52,211 New JMX connection (127.0.0.1:7199) INFO [qtp1313948736-24] 2015-08-06 12:30:52,214 New JMX connection (127.0.0.1:7199) INFO [qtp1313948736-24] 2015-08-06 12:30:52,218 HTTP: :get /cluster/solr-cores {} - 200 INFO [jmx-metrics-1] 2015-08-06 12:30:57,186 New JMX connection (127.0.0.1:7199) INFO [jmx-metrics-1] 2015-08-06 12:30:57,191 New JMX connection (127.0.0.1:7199) ERROR [cassandra-processor-4] 2015-08-06 12:31:15,082 Error when proccessing cassandra callcom.datastax.driver.core.exceptions.InvalidQueryException: Unknown identifier timestamp

有什么想法吗?

升级迁移失败。可以使用 describe keyspace "OpsCenter" 查看架构并查找未升级到 5.2.0 的表(查看评论)。所做的更改在这里:

https://gist.github.com/philip-doctor/2b7c87f551a35a5c7c79

-- depending on how far through the migration you progressed, parts of this may fail
-- this assumes you're using the default name of "OpsCenter" for the opscenter keyspace, otherwise 
-- you'll have to rename the "OpsCenter" part.

ALTER TABLE "OpsCenter"."events" ADD message text;
ALTER TABLE "OpsCenter"."events" ADD column_family text;
ALTER TABLE "OpsCenter"."events" ADD target_node text;
ALTER TABLE "OpsCenter"."events" ADD event_source text;
ALTER TABLE "OpsCenter"."events" ADD "keyspace" text;
ALTER TABLE "OpsCenter"."events" ADD api_source_ip text;
ALTER TABLE "OpsCenter"."events" ADD user text;
ALTER TABLE "OpsCenter"."events" ADD source_node text;
ALTER TABLE "OpsCenter"."events" with comment = '{"info": "OpsCenter management data.", "version": [5, 2, 0]}';

ALTER TABLE "OpsCenter"."rollups60" RENAME column1 to timestamp;
ALTER TABLE "OpsCenter"."rollups60" with comment = '{"info": "OpsCenter management data.", "version": [5, 2, 0]}';
ALTER TABLE "OpsCenter"."rollups300" RENAME column1 to timestamp;
ALTER TABLE "OpsCenter"."rollups300" with comment = '{"info": "OpsCenter management data.", "version": [5, 2, 0]}';
ALTER TABLE "OpsCenter"."rollups7200" RENAME column1 to timestamp;
ALTER TABLE "OpsCenter"."rollups7200" with comment = '{"info": "OpsCenter management data.", "version": [5, 2, 0]}';
ALTER TABLE "OpsCenter"."rollups86400" RENAME column1 to timestamp;
ALTER TABLE "OpsCenter"."rollups86400" with comment = '{"info": "OpsCenter management data.", "version": [5, 2, 0]}';