十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
近期在使用python写一套模拟API请求的监控项目,考虑数据可视化这方面就采用grafana来呈现,下面来看看怎么弄。
站在用户的角度思考问题,与客户深入沟通,找到秦州网站设计与秦州网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、网站制作、企业官网、英文网站、手机端网站、网站推广、域名注册、虚拟空间、企业邮箱。业务覆盖秦州地区。
首先安装好mysql,将监控的日志数据写入到mysql之中。如下图:
好了,这里就已经准备好了相关的测试模拟数据。那么下面就使用Grafana来配置图表看看。
如果有不清楚Grafana怎么安装的朋友,可以点击 这里 查看如何安装部署。
按照脚本我已经设置好了 admin 的密码为 newpwd 了。
输入用户名 admin 和 密码 newpwd ,点击 Log In 登录系统。
在登陆系统后的首页,就可以进行数据源的添加了。
访问不了 localhost:3306 的原因是因为Grafana是使用docker容器启动的,而容器当然没有部署mysql。
所以,修改mysql访问配置如下:
好了,数据源mysql已经配置好了。下一步就是配置图表的呈现了。
下面来编写一个SQL查询来看看。
从上图看出,从mysql中查询的结果直接就可以从Grafana表格呈现了。
好了,基本上table表格已经呈现,但是单纯这样的一个表格满足不了我的胃口。
那么下面就来再整一个曲线图来看看。
我不是想单独增加一个新的面板,而是想在刚刚创建的table上面创建一个曲线图,那么该怎么做呢?
从上这个图表的配置我一开始也没太理解清楚,配置过后,看着图表呈现就更加好的理解了。
根据图表的内容,我查询的分析如上图。
当然还可以呈现更加多的图表,这里就基本介绍到这里啦。
public class CategoryItemChart {
public static String generateBarChart(HttpSession session, PrintWriter pw,int w, int h,ArrayList list) {
String filename = null;
try {
CategoryDataset dataset = createDataset(list);
JFreeChart chart = ChartFactory.createBarChart(
"",//图表标题
"",//X轴标题
"",//Y轴标题
dataset,//数据集合
PlotOrientation.VERTICAL,//图表显示方向(水平、垂直)
true,//是否使用图例
true,//是否使用工具提示
false//是否为图表增加URL
);
/*------------配置图表属性--------------*/
chart.setBackgroundPaint(Color.white); // 1,设置整个图表背景颜色
CategoryPlot plot = chart.getCategoryPlot(); /*------------设定Plot参数-------------*/
plot.setBackgroundPaint(Color.white); // 2,设置详细图表的显示细节部分的背景颜色
plot.setDomainGridlinePaint(Color.black); // 3,设置垂直网格线颜色
plot.setDomainGridlinesVisible(false); // 4,设置是否显示垂直网格线
plot.setRangeGridlinePaint(Color.yellow); // 5,设置水平网格线颜色
plot.setRangeGridlinesVisible(false); //6,设置是否显示水平网格线
/*---------将所有数据转换为整数形式---------*/
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
/*---------设置是否在柱图的状态条上显示边框----*/
CategoryItemRenderer renderer = (CategoryItemRenderer) plot.getRenderer();
BarRenderer render = (BarRenderer) plot.getRenderer();
// render.setItemMargin(0.0);
// render.setMinimumBarLength(0.0);
/*---------设置状态条颜色的深浅渐变-----------*/
GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, new Color(255,200, 80), 0.0f, 0.0f, new Color(255, 255, 40));
GradientPaint gp1 = new GradientPaint(0.0f, 0.0f, new Color(50,255, 50), 0.0f, 0.0f, new Color(100, 255, 100));
GradientPaint gp2 = new GradientPaint(0.0f, 0.0f, Color.red, 0.0f,0.0f, new Color(255, 100, 100));
GradientPaint gp3 = new GradientPaint(0.0f, 0.0f, new Color(108,108, 255), 0.0f, 0.0f, new Color(150, 150, 200));
renderer.setSeriesPaint(0, gp0);
renderer.setSeriesPaint(1, gp1);
renderer.setSeriesPaint(2, gp2);
renderer.setSeriesPaint(3, gp3);
/*
*
* 解决柱状体与图片边框的间距问题
*
*
* */
/*------设置X轴标题的倾斜程度----*/
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.E / 6.0));
/*------设置柱状体与图片边框的左右间距--*/
domainAxis.setLowerMargin(0.06);
domainAxis.setUpperMargin(0.06);
/*------设置柱状体与图片边框的上下间距---*/
ValueAxis rAxis = plot.getRangeAxis();
rAxis.setUpperMargin(0.3);
rAxis.setLowerMargin(0.3);
/*---------设置每一组柱状体之间的间隔---------*/
render.setItemMargin(0.01);
/*
*
* 解决柱状体与图片边框的间距问题
*
*
* */
/*
*
*
* 解决JFREECHART的中文显示问题
*
*
* */
/*----------设置消除字体的锯齿渲染(解决中文问题)--------------*/
chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
/*----------设置标题字体--------------------------*/
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("黑体", Font.PLAIN, 20));
/*------设置X轴坐标上的文字-----------*/
domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
/*------设置X轴的标题文字------------*/
domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
/*------设置Y轴坐标上的文字-----------*/
rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 14));
/*------设置Y轴的标题文字------------*/
rAxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));
/*---------设置柱状体上的显示的字体---------*/
renderer.setBaseItemLabelFont(new Font("宋体", Font.PLAIN, 12));
renderer.setBaseItemLabelGenerator(new LabelGenerator(0.0));
renderer.setBaseItemLabelsVisible(true);
/*
*
*
* 解决JFREECHART的中文显示问题
*
*
* */
/*------得到chart的保存路径----*/
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session);
/*------使用printWriter将文件写出----*/
ChartUtilities.writeImageMap(pw, filename, info, true);
pw.flush();
} catch (Exception e) {
System.out.println("Exception - " + e.toString());
e.printStackTrace(System.out);
filename = "public_error_500x300.png";
}
return filename;
}
/*-------------设置柱状体顶端的数据显示--------------*/
static class LabelGenerator implements CategoryItemLabelGenerator {
private double threshold;
public LabelGenerator(double threshold) {
this.threshold = threshold;
}
public String generateLabel(CategoryDataset dataset, int row, int column) {
String result = null;
final Number value = dataset.getValue(row, column);
if (value != null) {
final double v = value.doubleValue();
if (v this.threshold) {
result = value.toString();
}
}
return result;
}
public String generateRowLabel(CategoryDataset dataset, int row) {
return null;
}
public String generateColumnLabel(CategoryDataset dataset, int column) {
return null;
}
}
/*-----------数据封装-------------*/
private static CategoryDataset createDataset(ArrayList list) {
String s1 = "1";
String s2 = "2";
String c1 = "1";
String c2 = "2";
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.setValue(44, s1, c1);
dataset.setValue(48, s2, c2);
return dataset;
}
}
比较完整的一个得到柱图的代码,保存路径是临时文件,怎么从数据库取值应该会吧。把dataset处理一下就可以了。
Navicat 提供三种在主窗口查看对象的类型,即列表、详细信息、ER图表。在默认情况下,Navicat 在对象列表使用“列表 ”查看,它只显示对象的名字,你可以从主菜单选择 查看 - 列表 。注意:Navicat 生成ER图表只限于完整版本。只有表提供 ER 图表查看。其他数据库对象只提供列表和详细信息查看。
navicat 怎么生成ER图表的方法:从主菜单选择查看 - ER 图表,如果已选择的数据库或模式包含表,将自动创建 ER 图表。
Navicat for MySQL 功能简介
发布时间:2015-09-22
Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案,支持单一程序,可同时连接到 MySQL和MariaDB。这个功能齐备的前端软件为数据库管理、开发和维护提供了直观而强大的图形界面,给 MySQL 或 MariaDB 新手以及专业人士提供了一组全面的工具。
Navicat for MySQL 可连接到任何本机或远程 MySQL 和 MariaDB 服务器。它可以用于 MySQL 数据库服务器版本3.21或以上和 MariaDB 5.1或以上,与Drizzle、OurDelta 和 Percona Server 兼容,并支持大部分最新功能,包括表、视图、函数或过程、事件等。
主要功能包括 SQL 创建工具或编辑器、数据模型工具、数据传输、导入或导出、数据或结构同步、报表、以及更多。
Navicat for MySQL主要功能如下:
Navicat Cloud
Navicat for MySQL 提供 Navicat Cloud 服务给用户,同步连接设置、模型、查询和虚拟组到云。这样就能随时随地实时访问。有了 Navicat Cloud,便可以善用一天中的每分每秒,最大限度提高工作效率。
安全连接
Navicat 可通过 SSH 通道创建安全的 SSH 阶段作业,确保两台主机之间的连接受到强大验证和安全加密的保护,验证方式可使用密码、公钥、私钥。Navicat 也支持 HTTP 通道,直接连接互联网服务供应商。
对象设计器
Navicat for MySQL对象设计器
使用专业的对象设计器创建、修改和设计所有数据库对象,例如:表、视图、触发器和索引。无需编写复杂的 SQL 来创建和编辑对象。
表查看器
Navicat for MySQL查看网格或表单
查看网格或表单:使用网格查看添加、修改和删除记录。用类似数据表的功能浏览网格查看,例如排序和隐藏数据组,使用 Navicat for MySQL 助理编辑器:备注、十六进制、图像或更多,也可以用表单查看操作记录,清楚显示记录的栏位名和其值,不必担心误解数据。
Navicat for MySQL选择外键数据
选择外键数据:使用外键关系选定参考查找表,并自动建立下拉列表。无需持续对照参考主表,简化工作流程和提高效率。
SQL 创建工具或编辑器
Navicat SQL 创建工具
SQL 创建工具:视觉化 SQL 创建工具创建和编辑查询或视图,不必担心语法和正确命令的用法。选择需要在表中执行的操作,自动编写 SQL 语句。
Navicat for MySQL自动完成代码
自动完成代码:使用自动完成代码功能,能快速地在 SQL 编辑器中创建 SQL 语句。无论选择数据库对象的属性或 SQL 关键字,只需从下拉列表中选择。
数据库设计器
Navicat for MySQL逆向工程
逆向工程:使用 Navicat for MySQL逆向工程,可从一个现有的数据库创建数据库模型,可视化地显现和编辑数据库结构或创建一个图形模型,并由模型生成一个数据库。
Navicat for MySQL正向工程和生成脚本
正向工程和生成脚本:同步到数据库功能可充分了解所有数据库的差异,生成必要的同步脚本来更新目标数据库,并使其与模型相同。导出 SQL 有机会全面控制最终的 SQL 脚本,生成参照完整性规则,生成模型的独立部份、注释、字符集等,可大大节省工作时间。
数据处理工具
导入或导出向导:从不同格式的文件导入数据到表,例如 Access、Excel、XML、TXT、CSV、JSON 及更多。而且在设置数据源连接后,可以从 ODBC 导入数据。只需简单地选择需要导入的表,或使用添加查询按钮指定查询。同样可以将数据导出到各种格式,如 Excel、TXT、CSV、DBF、XML 等。
Navicat for MySQL数据传输
数据传输:在多个数据库间轻松地传输数据,可以选择指定的 SQL 格式和编码导出数据为 SQL 文件,这个功能可大大的简化迁移数据的进程。
Navicat 数据或结构同步
数据或结构同步:从一个数据库中详细的分析进程传输数据到另外一个数据库,同样可以对比并修改表的结构。在数据和结构同步中,目标数据库可以在源服务器,也可以在其他的服务器。
Navicat for MySQL备份或还原
备份或还原:定期备份数据库对用户涞水相当重要,备份或还原全部表、记录、视图等。如果数据损坏,不用再重做,高枕无忧。
Navicat for MySQL批处理作业
计划:不同数据库的设置文件可以创建在单一批处理作业,这样就可以设置计划并在指定的时间运行。批处理作业可以创建的对象包括打印报表、查询、数据传输、数据 同步、导入和导出。而且可传送电子邮件通知给指定的收件人,获取最新的计划信息。此外导出的文件或打印的报表可以添加到批处理作业作为电子邮件附件,轻易与其他人共享数据。
报表创建工具或查看器 只限于 Windows 版本
Navicat for MySQL 报表创建工具
使用用户友好 GUI 报表创建工具创建各种不同类型的报表,设计发票、统计、邮寄标签及更多其他报表。输出报表到多种格式,如 text、PDF、Lotus、Excel、Graphic、Html 及更多。Navicat Report Viewer 可浏览由报表创建工具设计的报表,最酷的是可以与没有安装 Navicat 但安装了 Navicat Report Viewer 的计算机共享报表。
实用工具
Navicat for MySQLER 图表
ER 图表:ER 图表能通过图形格式显示数据库结构,帮助用户了解数据库,看到数据库中表之间的关联。
Navicat for MySQL连接颜色或虚拟组
连接颜色或虚拟组:连接颜色功能可立刻知道连接到哪个服务器,显示在子窗口工具栏的颜色指示,用于识别连接和它们的数据库对象。虚拟组工具可将对象分类到不用的组,令对象和连接有一个更好的组织。
Navicat for MySQL树或对象筛选功能
树或对象筛选:使用树或对象筛选功能可设计显示数据对象的列表,简单地需输入文本,就只显示符合指定字符串的数据库对象。
收藏夹
Navicat for MySQL可帮助用户容易地回到经常访问的数据库对象,通过添加路径到收藏列表,只需一次点击就可以打开这些数据库对象。
详细的图文教程可以参考: