当前位置: 首页 > news >正文

企业营销型网站建设厂家期货贵金属网站建设

企业营销型网站建设厂家,期货贵金属网站建设,搜索平台,嵊州网站设计Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTFUL风格的Web服务,是非常流行的API表达工具。 Swagger能够自动生成完善的 RESTFUL AP文档,,同时并根据后台代码的修改同步更新,同时提供完整的测试页面来调试API。 Prometheus 是一个开源的服务监控系统和时…Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTFUL风格的Web服务,是非常流行的API表达工具。 Swagger能够自动生成完善的 RESTFUL AP文档,,同时并根据后台代码的修改同步更新,同时提供完整的测试页面来调试API。 Prometheus 是一个开源的服务监控系统和时序数据库其提供了通用的数据模型和快捷数据采集、存储和查询接口。 Grafana是一个跨平台的开源的度量分析和可视化工具可以通过将采集的数据查询然后可视化的展示并及时通知。 Actuator同时还可以与外部应用监控系统整合比如 Prometheus, Graphite, DataDog, Influx, Wavefront, New Relic等。 把springbootmybatis-plusmysqloracleactuatorPrometheusGrafanaSwagger做到的效果是开发运维一体化。 环境介绍 技术栈 springbootmybatis-plusmysqloracleactuatorPrometheusGrafanaSwagger 软件 版本 mysql 8 oracle 12C IDEA IntelliJ IDEA 2022.2.1 JDK 1.8 Spring Boot 2.7.13 mybatis-plus 3.5.3.2 Swagger 2.9.2 Grafana 10.2.0 Prometheus 2.16.0 本地主机应用 192.168.1.8:8007 PrometheusGrafana安装在同一台主机 http://192.168.68.131:9090/targets http://192.168.68.131:3000 Prometheus安装 #查看防火墙状态我们测试机早就关闭了 systemctl status firewalld #关闭防火墙 systemctl stop firewalld #永久关闭selinux vi /etc/selinux/config #将SELINUXenforcing改为SELINUXdisabled然后重启 #若不关闭防火墙可打开端口安如下修改端口号即可 firewall-cmd --zonepublic --add-port端口号/tcp --permanent firewall-cmd --reload#通过wget下载prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.16.0/prometheus-2.16.0.linux-amd64.tar.gz #同步时间 yum install -y ntpdate ntpdate time.windows.com #解压-安装 ll tar -zxvf prometheus-2.16.0.linux-amd64.tar.gz -C /usr/local/ mv /usr/local/prometheus-2.16.0.linux-amd64/ /usr/local/prometheus cd /usr/local/prometheus ll #启动Prometheus—使用默认配置文件启动 /usr/local/prometheus/prometheus --config.file/usr/local/prometheus/prometheus.yml #查看9090端口是否开启 ss -anlt | grep 9090 #通过浏览器进入页面 IP:9090 #数据展示 IP:9090/metrics Grafana安装 #安装go语言环境 yum -y install go #下载grafana-7.2.0-1.x86_64.rpm wget https://dl.grafana.com/oss/release/grafana-7.2.0-1.x86_64.rpm #安装 yum -y install grafana-7.2.0-1.x86_64.rpm #开机自启grafana-server systemctl enable grafana-server #开启grafana-server systemctl start grafana-server #浏览器输入IP3000 账号密码默认admin/admin 设置新密码 springboot应用搭建 引入依赖将springboot暴露的数据转为普罗米修斯的格式 dependencygroupIdio.micrometer/groupIdartifactIdmicrometer-registry-prometheus/artifactIdscoperuntime/scope /dependency 引入swagger2 dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactIdversion2.9.2/version/dependencydependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger-ui/artifactIdversion2.9.2/version/dependency pom.xml dependenciesdependencygroupIdio.micrometer/groupIdartifactIdmicrometer-registry-prometheus/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactIdversion2.9.2/version/dependencydependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger-ui/artifactIdversion2.9.2/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.4.1/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependencydependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependencydependencygroupIdcom.oracle.database.jdbc/groupIdartifactIdojdbc8/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.14/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIddynamic-datasource-spring-boot-starter/artifactIdversion3.5.0/version/dependencydependencygroupIdp6spy/groupIdartifactIdp6spy/artifactIdversion3.9.1/version/dependency /dependencies application.yml server:port: 8007 hxiot:swagger2:# 是否开启swagger2 开启为true关闭为falseenable: truemanagement:server:port: 8008endpoints:web:exposure:include: *endpoint:prometheus:enabled: truehealth:show-details: alwaysmetrics:export:prometheus:enabled: true spring:mvc:path match:matching-strategy: ant_path_matcherprofiles:active: dev spring:application:name: ProvideAPIServicesdatasource:dynamic:primary: sys2 #设置默认的数据源或者数据源组,默认值即为masterstrict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源datasource:oracle:username: systempassword: pwdurl: jdbc:oracle:thin:ip:1521:orcldriver-class-name: oracle.jdbc.driver.OracleDriver # driver-class-name: com.mysql.jdbc.Driverwms:url: jdbc:p6spy:mysql://ip:3306/Wms?useUnicodetruecharacterEncodingUTF-8username: rootpassword: 1pwddriver-class-name: com.p6spy.engine.spy.P6SpyDriver # driver-class-name: com.mysql.jdbc.Driversys2:username: rootpassword: pwdurl: jdbc:p6spy:mysql://127.0.0.1:3306/sys?serverTimezoneAsia/ShanghaiuseUnicodetruecharacterEncodingUTF-8driver-class-name: com.p6spy.engine.spy.P6SpyDriver mybatis-plus:configuration:#输出日志log-impl: org.apache.ibatis.logging.stdout.StdOutImpl#配置映射规则map-underscore-to-camel-case: true #表示支持下划线到驼蜂的映射#隐藏mybatis图标global-config:banner: falsedb-config:logic-delete-field: statuslogic-not-delete-value: 1logic-delete-value: 0 Application启动类需添加Bean Bean MeterRegistryCustomizerMeterRegistry configurer(Value(spring.application.name) String applicationName) { return (registry) - registry.config().commonTags(application, applicationName); } prometheus添加主机 vim /usr/local/prometheus/prometheus.yml 添加配置       #配置ProvideApiServicesApplication - job_name: ProvideAPIServices scrape_interval: 5s metrics_path: /actuator/prometheus static_configs: - targets: [192.168.1.9:8007] http://192.168.68.131:9090/targets demoController Controller需符合REST风格 Api(value ApiTest) RestController(/demo) public class demoController {Autowiredprivate TAddressServiceImpl tAddressService;ApiOperation(value 测试)GetMapping(/test)public ListTAddress setTAddressService() {return tAddressService.list();}ApiOperation(value 上传文件)PutMapping(/upload)//FileUploadDemopublic void fileUp(ApiParam(文件) MultipartFile file, HttpServletRequest request) throws IOException {//获取文件名称String originalFilename file.getOriginalFilename();System.out.println(originalFilename);//获取web服务器运行目录String currentPath request.getServletContext().getRealPath(/upload/);System.out.println(currentPath);saveFile(file,currentPath);System.out.println(ok);}public void saveFile(MultipartFile file,String path) throws IOException {File dir new File(path);if (!dir.exists()) {dir.mkdirs();}File newFile new File(pathfile.getOriginalFilename());file.transferTo(newFile);}} Configuration Configuration EnableSwagger2 public class SwaggerConfig {/*** Docket*/Beanpublic Docket createRestAPi() {// 构造函数传入初始化规范这是swagger2规范return new Docket(DocumentationType.SWAGGER_2)//.pathMapping(/)// apiInfo添加api的详情信息参数为ApiInfo类型的参数这个参数包含了基本描述信息比如标题、描述、版本之类的开发中一般都是自定义这些信息.apiInfo(apiInfo())// select、apis、paths、build 这四个是一组的组合使用才能返回一个Docket实例对象其中apis和paths是可选的。.select()// apis:添加过滤条件。RequestHandlerSelectors中有很多过滤方式RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)加了ApiOperation注解的类生成接口文档//扫描com.qgs.controller包下的API交给Swagger2管理.apis(RequestHandlerSelectors.any()).paths(PathSelectors.any())// paths控制那些路径的api会被显示出来。//.paths(PathSelecto1rs.any()).build()// 是否开启swagger 如果是false浏览器将无法访问默认是true.enable(true);}/*** ApiInfo*/private ApiInfo apiInfo() {return new ApiInfoBuilder()// 标题内容.title(ProvideAPIServicesAPI文档)// 描述内容.description(接口文档详情信息)// 版本.version(1.0)联系人信息//.contact(new Contact(, , ))// 许可//.license()// 许可链接//.licenseUrl().build();} http://192.168.1.8:8007/swagger-ui.html 可能遇到的问题 org.springframework.context.ApplicationContextException: Failed to start bean documentationPluginsBootstrapper; nested exception is java.lang.NullPointerException 1、Springboot2.7与Swagger3.0冲突将Swagger降低降低 2、没有配置actuator端口导致actuator抢占8007端口 Actuator同时还可以与外部应用监控系统整合比如 Prometheus, Graphite, DataDog, Influx, Wavefront, New Relic等。这些系统提供了非常好的仪表盘、图标、分析和告警等功能使得你可以通过统一的接口轻松的监控和管理你的应用。 ​ Actuator使用Micrometer来整合上面提到的外部应用监控系统。这使得只要通过非常小的配置就可以集成任何应用监控系统。Spring Boot Actuator作用健康检查、审计、统计、监控、HTTP追踪。 Prometheus 是一个开源的服务监控系统和时序数据库其提供了通用的数据模型和快捷数据采集、存储和查询接口。它的核心组件Prometheus server会定期从静态配置的监控目标或者基于服务发现自动配置的自标中进行拉取数据当新拉取到的数据大于配置的内存缓存区时数据就会持久化到存储设备当中。 每个被监控的主机都可以通过专用的exporter 程序提供输出监控数据的接口它会在目标处收集监控数据并暴露出一个HTTP接口供Prometheus server查询Prometheus通过基于HTTP的pull的方式来周期性的采集数据。 任何被监控的目标都需要事先纳入到监控系统中才能进行时序数据采集、存储、告警和展示监控目标可以通过配置信息以静态形式指定也可以让Prometheus通过服务发现的机制进行动态管理。 Prometheus 能够直接把API Server作为服务发现系统使用进而动态发现和监控集群中的所有可被监控的对象 Grafana是一个跨平台的开源的度量分析和可视化工具可以通过将采集的数据查询然后可视化的展示并及时通知。 特点     快速灵活的客户端图表面板插件有许多不同方式的可视化指标和日志官方库中具有丰富的仪表盘插件比如热图、折线图、图表等多种展示方式支持多数据源GraphiteInfluxDBOpenTSDBPrometheusElasticsearchCloudWatch和KairosDB等通知提醒以可视方式定义最重要指标的警报规则Grafana将不断计算并发送通知在数据达到阈值时通过Slack、PagerDuty等获得通知4、混合展示在同一图表中混合使用不同的数据源可以基于每个查询指定数据源甚至自定义数据源5、注释标记使用来自不同数据源的丰富事件注释图表将鼠标悬停在事件上会显示完整的事件元数据和标记6、过滤器Ad-hoc过滤器允许动态创建新的键/值过滤器这些过滤器会自动应用于使用该数据源的所有查询。
http://www.hkea.cn/news/14585887/

相关文章:

  • app建设网站哪个网站买东西最便宜
  • 网站费用明细物流官网网站
  • 南阳网站排名第三方网站备案
  • 江苏恒健建设集团有限公司网站扬州网站建设suteng
  • 下城区网站建设价格查询销售系统软件
  • linux安装wordpress无法访问同时优化几个网站
  • 酒店行业的网站建设怎么做物流网站
  • 为什么收不到自己网站网站开发需要2个月吗
  • 网站建设制作怎么弄网站建设公司3lue
  • 网站建设 模板网站wordpress商城自动发货
  • 男女做啊免费视频网站电信备案新增网站
  • 重庆网站建设沛宣网络网页已改版
  • 阳泉网站设计wordpress文章页面模板下载
  • 有没有专门做二手电脑的网站常州模板网站建设信息
  • 小视频网站源码网络营销都有哪些方法
  • 公园网站建设方案 ppt注册 网站开发 公司
  • 电商网站建设试题建设工程公司是干什么的
  • 企业做网站公司怎么样单页面 网站怎么做的
  • 淘宝做网站价格电子信息工程是互联网专业吗
  • 郑州建设网站定制新塘做网站
  • 河南省路桥建设集团网站比较好的装修公司
  • 举报网站建设运行情况济南网站搭建公司
  • 广东省省建设厅网站上海物流网站建设
  • 网站后台管理系统模板辽宁省工程招投标信息网
  • 中国自适应网站建设外包网站建设哪家好
  • 简约网站网站查询是否安全
  • 爱玖货源站前端开发工程师工资一般是多少
  • 怎么用wordpress建外贸网站东莞网站制作智能 乐云践新
  • 做网站哪里最好白度指数
  • 哈尔滨公司网站建设多少钱网站怎样做平面设计图