测试使用docker 部署

docker-compose文件

注意网络模型选择的host,同时配置了opentracing 服务

version: "3"
services:
  bblfsh:
    image: bblfsh/bblfshd
    privileged: true
    environment:
    - "JAEGER_AGENT_HOST=localhost"
    - "JAEGER_AGENT_PORT=6831"
    - "JAEGER_SAMPLER_TYPE=const"
    - "JAEGER_SAMPLER_PARAM=1"
    network_mode: "host"
    ports:
    - "9432:9432"
    volumes:
    - "/var/lib/bblfshd:/var/lib/bblfshd"
    - "/var/run/docker.sock:/var/run/docker.sock"
  jaeger:
    image: jaegertracing/all-in-one:1.8
    ports:
    - "5775:5775/udp"
    - "6831:6831/udp"
    - "6832:6832/udp"
    - "5778:5778"
    - "16686:16686"
    - "14268:14268"
    - "9411:9411"
 
 

安装驱动

对于语言解析处理的docker 镜像,inside 容器,为了简单,添加的只有golang 的
如果网络比较好的话,可以安装所有的,使用--all参数,或者推荐的 --recommended

 
bblfshctl driver install docker://bblfsh/go-driver:latest

解析 golang 语言

inside 容器,因为按照其他语言的驱动有点慢,所以自己copy 一个golang 代码文件到容器,同时
只安装了简单的golang driver

  • 准备golang 代码
    main.go
 
package main
​
import "fmt"
​
func main() {
 fmt.Println("demoapp")
}
​
 
 

拷贝文件
注意修改为自己的容器id

<wiz_code_mirror>

 
 
 
 
 
docker cp main.go 4116cc1ee650:/opt/
 
 
  • 指定解析
bblfshctl parse /opt/main.go
  • 生成的代码ast 解析
    比较多,保留部分
 
Status: Ok
Elapsed: 1.099302113s
​
Module {
. Roles: File,Module
. Children: {
. . 0: Expr {
. . . Roles: Expression
. . . StartPosition: {
. . . . Offset: 0
. . . . Line: 1
. . . . Col: 1
. . . }
. . . Properties: {
. . . . internalRole: body
. . . }
. . . Children: {
. . . . 0: Call {
. . . . . Roles: Function,Call,Expression
. . . . . StartPosition: {
. . . . . . Offset: 0
. . . . . . Line: 1
. . . . . . Col: 1
. . . . . }
. . . . . Properties: {
. . . . . . internalRole: value
. . . . . }
. . . . . Children: {
. . . . . . 0: Name {
. . . . . . . Roles: Identifier,Expression,Call,Callee
. . . . . . . TOKEN "print"
. . . . . . . StartPosition: {
. . . . . . . . Offset: 0
. . . . . . . . Line: 1
. . . . . . . . Col: 1
. . . . . . . }
。。。。
 
 
  • opentracing 统计分析
    不同driver 的请求

    golang 解析的请求链路

说明

Babelfish 的功能很强大, 对于我们分析代码是很方便的,同时生产环境,建议的方式是使用client 调用grpc 服务,同时官方也提供了
一个web 的dashboard ,方便我们测试

参考资料

https://doc.bblf.sh/using-babelfish/advanced-usage.html

Babelfish 基本试用的更多相关文章

  1. SharePoint Online 申请试用链接地址

    SharePoint Online 申请试用链接地址: https://products.office.com/en-us/business/compare-office-365-for-busine ...

  2. 活动助手Beta用户试用报告

    用户试用报告 1.面向参与者用户 1.1 日常参加各类学习(水综测)活动中,有没有遇到以下问题: (1) 信息来源混乱,不知道靠不靠谱 (2) 每次报名都要重新填写自己的学号手机号,有时候填错了就没综 ...

  3. 创建WP8试用应用

    参考资料: 创建 Windows Phone 的试用应用 如何在 Windows Phone 应用中实现试用体验 Windows Phone 7 开发 31 日谈——第23日:提供试用版应用程序 对资 ...

  4. 达梦7的试用 与SQLSERVER的简单技术对比

    达梦7的试用 与SQLSERVER的简单技术对比 达梦数据库公司推出了他们的数据库服务管理平台,可以在该平台使用达梦数据库而无须安装达梦7数据库 地址:http://online.dameng.com ...

  5. Beta版本——用户试用与调研报告

    1 引言 1.1 系统概述 ​ 毕设导师智能分配系统是一个用来简化传统手工匹配繁琐操作的系统.本系统将学生报志愿.系负责人收集整理数据.相关人员进行手工分配.反馈选择结果等繁琐的操作转移到线上.把毕设 ...

  6. 【记录】尝试用android-logging-log4j去实现log输出内容到sd卡中的文件的功能

    [背景] 折腾: [记录]给Android中添加log日志输出到文件 期间,已经试了: [记录]尝试用android中microlog4android实现log输出到文件的功能 但是不好用. 然后就是 ...

  7. 代码阅读分析工具Understand 2.0试用

    Understand 2.0是一款源代码阅读分析软件,功能强大.试用过一段时间后,感觉相当不错,确实可以大大提高代码阅读效率.由于Understand功能十分强大,本文不可能详尽地介绍它的所有功能,所 ...

  8. 如何申请国际版Office365和Azure的试用账号

    关键字:国际版.Office365.Azure.试用账号.1美元.信用卡 待续

  9. Android N preview 试用

    一.下载更新包 下载地址:https://developer.android.com/intl/zh-cn/preview/download.html 注意下载适合你手机的安装包哦 二.把你手机的oe ...

随机推荐

  1. 项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved 解决方法

    Error: The import javax.servlet cannot be resolved The import javax.servlet.http.HttpServletRequest ...

  2. 将自己的域名解析跳转到博客主页(GitHub中的gitpage跳转)

    最近突然迷上了博客,突然又突发奇想,将自己几个月前买的现在限制的域名拿来跳转到自己的csdn博客.经过一番研究,总结---- 把自己的购买的域名(比如我买的circleyuan.top)跳转到CSDN ...

  3. 栈回溯简单实现(x86)

    0x01  栈简介  首先局部变量的分配释放是通过调整栈指针实现的,栈为函数调用和定义局部变量提供了一块简单易用的空间,定义在栈上的变量不必考虑内存申请和释放.只要调整栈指针就可以分配和释放内存.   ...

  4. Centos7部署kubernetes API服务(四)

    1.准备软件包 [root@linux-node1 bin]# pwd /usr/local/src/kubernetes/server/bin [root@linux-node1 bin]# cp ...

  5. 安装google 框架

    使用  root exporer很方便   su cp /sdcard/google/busybox /data/local/tmp chmod 0755 /data/local/tmp/busybo ...

  6. Problem A 还会用继承吗?

    定义一个Base类,包括1个int类型的属性,以及满足输出格式要求的构造函数.拷贝构造函数和析构函数. 定义Base类的子类Derived,包括1个int类型的属性, 以及满足输出格式要求的构造函数. ...

  7. AOP 实现自定义注解

    1.自定义注解2.编写 AOP3.测试 1.自定义注解 package com.base.yun.spring.aop; import java.lang.annotation.Documented; ...

  8. 使用kafka和zookeeper 构建分布式编译环境

    1:在每台机器上安装jdk, 脚本代码如下: 每一个机器上下载jdk,zookeeper,kafka 链接:https://www.oracle.com/technetwork/java/javase ...

  9. poj1062(分区间迪杰斯特拉,内含测试数据,一直wa的同学可以进来看看)

    昂贵的聘礼 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 54946   Accepted: 16518 Descripti ...

  10. codeforces1003D(贪心)

    D. Coins and Queries time limit per test 2 seconds memory limit per test 256 megabytes input standar ...