sdk/sdk.go
func doInit(license string, appName string, language string, languageVersion string) (int, error) {
	clicense := C.CString(license)
	defer C.free(unsafe.Pointer(clicense))

	cappName := C.CString(appName)
	defer C.free(unsafe.Pointer(cappName))

	clang := C.CString("Go")
	defer C.free(unsafe.Pointer(clang))

	clangVersion := C.CString(runtime.Version())
	defer C.free(unsafe.Pointer(clangVersion))

	errno := C.newrelic_init(clicense, cappName, clang, clangVersion)
	return errNo(errno)
}
func doInit(license string, appName string, language string, languageVersion string) (int, error) {
	clicense := C.CString(license)
	defer C.free(unsafe.Pointer(clicense))

	cappName := C.CString(appName)
	defer C.free(unsafe.Pointer(cappName))

	clang := C.CString("Go")
	defer C.free(unsafe.Pointer(clang))

	clangVersion := C.CString(runtime.Version())
	defer C.free(unsafe.Pointer(clangVersion))

	errno := C.newrelic_init(clicense, cappName, clang, clangVersion)
	return errNo(errno)
}
/**
 * Start the CollectorClient and the harvester thread that sends application
 * performance data to New Relic once a minute.
 *
 * @param license  New Relic account license key
 * @param app_name  name of instrumented application
 * @param language  name of application programming language
 * @param language_version  application programming language version
 * @return  segment id on success, error code on error, else warning code
 */