@@ -1218,7 +1218,6 @@ package tailtracer
12181218
12191219import (
12201220 "math/rand"
1221- "time"
12221221)
12231222
12241223type Atm struct{
@@ -1296,15 +1295,14 @@ func generateBackendSystem() BackendSystem{
12961295}
12971296
12981297func getRandomNumber(min int, max int) int {
1299- rand.Seed(time.Now().UnixNano())
13001298 i := (rand.Intn(max - min + 1) + min)
13011299 return i
13021300}
13031301` ` `
13041302
13051303> [!NOTE] Check your work
13061304>
1307- > - Imported the `math/rand` and `time` packages to support the implementation
1305+ > - Imported the `math/rand` package to support the implementation
13081306> of the `generateRandomNumber` function.
13091307> - Added the `generateAtm` function, that instantiates an `Atm` type and
13101308> randomly assigns either Illinois or California as the value for `StateID`,
@@ -1339,7 +1337,7 @@ Open the `tailtracer/model.go` file and add the following function to it:
13391337func generateTraces(numberOfTraces int) ptrace.Traces{
13401338 traces := ptrace.NewTraces()
13411339
1342- for i := 0; i <= numberOfTraces; i++{
1340+ for i := 0; i < numberOfTraces; i++{
13431341 newAtm := generateAtm()
13441342 newBackendSystem := generateBackendSystem()
13451343 }
@@ -1386,7 +1384,7 @@ Here is what the function should look like after you implement the changes:
13861384func generateTraces(numberOfTraces int) ptrace.Traces{
13871385 traces := ptrace.NewTraces()
13881386
1389- for i := 0; i <= numberOfTraces; i++{
1387+ for i := 0; i < numberOfTraces; i++{
13901388 newAtm := generateAtm()
13911389 newBackendSystem := generateBackendSystem()
13921390
@@ -1474,10 +1472,9 @@ to [Operating System](/docs/specs/semconv/resource/os/) and
14741472and values specified by the resource semantic convention to represent this
14751473information on its `Resource`.
14761474
1477- All the resource semantic convention attribute names and well known-values are
1478- kept in the
1479- [/semconv/v1.9.0/generated_resource.go](https://github.com/open-telemetry/opentelemetry-collector/blob/v0.128.0/semconv/v1.9.0/generated_resource.go)
1480- file in the Collector GitHub project.
1475+ The resource semantic convention keys and well-known values are defined by the
1476+ OpenTelemetry semantic conventions package :
1477+ [`go.opentelemetry.io/otel/semconv/v1.38.0`](https://pkg.go.dev/go.opentelemetry.io/otel/semconv/v1.38.0).
14811478
14821479Let's create a function to read the field values from a `BackendSystem` instance
14831480and write them as attributes into a `pcommon.Resource` instance. Open the
@@ -1490,27 +1487,27 @@ func fillResourceWithBackendSystem(resource *pcommon.Resource, backend BackendSy
14901487
14911488 switch {
14921489 case backend.CloudProvider == "amzn":
1493- cloudProvider = semconv.AttributeCloudProviderAWS
1494- case backend.OSType == "mcrsft":
1495- cloudProvider = semconv.AttributeCloudProviderAzure
1496- case backend.OSType == "gogl":
1497- cloudProvider = semconv.AttributeCloudProviderGCP
1490+ cloudProvider = semconv.CloudProviderAWS.Value.AsString()
1491+ case backend.CloudProvider == "mcrsft":
1492+ cloudProvider = semconv.CloudProviderAzure.Value.AsString()
1493+ case backend.CloudProvider == "gogl":
1494+ cloudProvider = semconv.CloudProviderGCP.Value.AsString()
14981495 }
14991496
1500- backendAttrs.PutStr(semconv.AttributeCloudProvider , cloudProvider)
1501- backendAttrs.PutStr(semconv.AttributeCloudRegion , backend.CloudRegion)
1497+ backendAttrs.PutStr(string( semconv.CloudProviderKey) , cloudProvider)
1498+ backendAttrs.PutStr(string( semconv.CloudRegionKey) , backend.CloudRegion)
15021499
15031500 switch {
15041501 case backend.OSType == "lnx":
1505- osType = semconv.AttributeOSTypeLinux
1502+ osType = semconv.OSTypeLinux.Value.AsString()
15061503 case backend.OSType == "wndws":
1507- osType = semconv.AttributeOSTypeWindows
1504+ osType = semconv.OSTypeWindows.Value.AsString()
15081505 case backend.OSType == "slrs":
1509- osType = semconv.AttributeOSTypeSolaris
1506+ osType = semconv.OSTypeSolaris.Value.AsString()
15101507 }
15111508
1512- backendAttrs.PutStr(semconv.AttributeOSType , osType)
1513- backendAttrs.PutStr(semconv.AttributeOSVersion , backend.OSVersion)
1509+ backendAttrs.PutStr(string( semconv.OSTypeKey) , osType)
1510+ backendAttrs.PutStr(string( semconv.OSVersionKey) , backend.OSVersion)
15141511 }
15151512` ` `
15161513
@@ -1615,15 +1612,14 @@ func generateBackendSystem() BackendSystem {
16151612}
16161613
16171614func getRandomNumber(min int, max int) int {
1618- rand.Seed(time.Now().UnixNano())
16191615 i := (rand.Intn(max-min+1) + min)
16201616 return i
16211617}
16221618
16231619func generateTraces(numberOfTraces int) ptrace.Traces {
16241620 traces := ptrace.NewTraces()
16251621
1626- for i := 0; i <= numberOfTraces; i++ {
1622+ for i := 0; i < numberOfTraces; i++ {
16271623 newAtm := generateAtm()
16281624 newBackendSystem := generateBackendSystem()
16291625
@@ -1645,8 +1641,8 @@ func fillResourceWithAtm(resource *pcommon.Resource, atm Atm) {
16451641 atmAttrs.PutStr("atm.stateid", atm.StateID)
16461642 atmAttrs.PutStr("atm.ispnetwork", atm.ISPNetwork)
16471643 atmAttrs.PutStr("atm.serialnumber", atm.SerialNumber)
1648- atmAttrs.PutStr(semconv.AttributeServiceName , atm.Name)
1649- atmAttrs.PutStr(semconv.AttributeServiceVersion , atm.Version)
1644+ atmAttrs.PutStr(string( semconv.ServiceNameKey) , atm.Name)
1645+ atmAttrs.PutStr(string( semconv.ServiceVersionKey) , atm.Version)
16501646
16511647}
16521648
@@ -1656,30 +1652,30 @@ func fillResourceWithBackendSystem(resource *pcommon.Resource, backend BackendSy
16561652
16571653 switch {
16581654 case backend.CloudProvider == "amzn":
1659- cloudProvider = semconv.AttributeCloudProviderAWS
1660- case backend.OSType == "mcrsft":
1661- cloudProvider = semconv.AttributeCloudProviderAzure
1662- case backend.OSType == "gogl":
1663- cloudProvider = semconv.AttributeCloudProviderGCP
1655+ cloudProvider = semconv.CloudProviderAWS.Value.AsString()
1656+ case backend.CloudProvider == "mcrsft":
1657+ cloudProvider = semconv.CloudProviderAzure.Value.AsString()
1658+ case backend.CloudProvider == "gogl":
1659+ cloudProvider = semconv.CloudProviderGCP.Value.AsString()
16641660 }
16651661
1666- backendAttrs.PutStr(semconv.AttributeCloudProvider , cloudProvider)
1667- backendAttrs.PutStr(semconv.AttributeCloudRegion , backend.CloudRegion)
1662+ backendAttrs.PutStr(string( semconv.CloudProviderKey) , cloudProvider)
1663+ backendAttrs.PutStr(string( semconv.CloudRegionKey) , backend.CloudRegion)
16681664
16691665 switch {
16701666 case backend.OSType == "lnx":
1671- osType = semconv.AttributeOSTypeLinux
1667+ osType = semconv.OSTypeLinux.Value.AsString()
16721668 case backend.OSType == "wndws":
1673- osType = semconv.AttributeOSTypeWindows
1669+ osType = semconv.OSTypeWindows.Value.AsString()
16741670 case backend.OSType == "slrs":
1675- osType = semconv.AttributeOSTypeSolaris
1671+ osType = semconv.OSTypeSolaris.Value.AsString()
16761672 }
16771673
1678- backendAttrs.PutStr(semconv.AttributeOSType , osType)
1679- backendAttrs.PutStr(semconv.AttributeOSVersion , backend.OSVersion)
1674+ backendAttrs.PutStr(string( semconv.OSTypeKey) , osType)
1675+ backendAttrs.PutStr(string( semconv.OSVersionKey) , backend.OSVersion)
16801676
1681- backendAttrs.PutStr(semconv.AttributeServiceName , backend.ProcessName)
1682- backendAttrs.PutStr(semconv.AttributeServiceVersion , backend.Version)
1677+ backendAttrs.PutStr(string( semconv.ServiceNameKey) , backend.ProcessName)
1678+ backendAttrs.PutStr(string( semconv.ServiceVersionKey) , backend.Version)
16831679}
16841680` ` `
16851681
@@ -1771,7 +1767,7 @@ initializing them with the `appendAtmSystemInstrScopeSpans()`. Here is what
17711767func generateTraces(numberOfTraces int) ptrace.Traces{
17721768 traces := ptrace.NewTraces()
17731769
1774- for i := 0; i <= numberOfTraces; i++{
1770+ for i := 0; i < numberOfTraces; i++{
17751771 newAtm := generateAtm()
17761772 newBackendSystem := generateBackendSystem()
17771773
@@ -1946,7 +1942,7 @@ the trace by calling the `appendTraceSpans()` function. Here is what the updated
19461942func generateTraces(numberOfTraces int) ptrace.Traces {
19471943 traces := ptrace.NewTraces()
19481944
1949- for i := 0; i <= numberOfTraces; i++ {
1945+ for i := 0; i < numberOfTraces; i++ {
19501946 newAtm := generateAtm()
19511947 newBackendSystem := generateBackendSystem()
19521948
@@ -2066,15 +2062,14 @@ func generateBackendSystem() BackendSystem {
20662062}
20672063
20682064func getRandomNumber(min int, max int) int {
2069- rand.Seed(time.Now().UnixNano())
20702065 i := (rand.Intn(max-min+1) + min)
20712066 return i
20722067}
20732068
20742069func generateTraces(numberOfTraces int) ptrace.Traces {
20752070 traces := ptrace.NewTraces()
20762071
2077- for i := 0; i <= numberOfTraces; i++ {
2072+ for i := 0; i < numberOfTraces; i++ {
20782073 newAtm := generateAtm()
20792074 newBackendSystem := generateBackendSystem()
20802075
@@ -2102,8 +2097,8 @@ func fillResourceWithAtm(resource *pcommon.Resource, atm Atm) {
21022097 atmAttrs.PutStr("atm.stateid", atm.StateID)
21032098 atmAttrs.PutStr("atm.ispnetwork", atm.ISPNetwork)
21042099 atmAttrs.PutStr("atm.serialnumber", atm.SerialNumber)
2105- atmAttrs.PutStr(semconv.AttributeServiceName , atm.Name)
2106- atmAttrs.PutStr(semconv.AttributeServiceVersion , atm.Version)
2100+ atmAttrs.PutStr(string( semconv.ServiceNameKey) , atm.Name)
2101+ atmAttrs.PutStr(string( semconv.ServiceVersionKey) , atm.Version)
21072102
21082103}
21092104
@@ -2113,30 +2108,30 @@ func fillResourceWithBackendSystem(resource *pcommon.Resource, backend BackendSy
21132108
21142109 switch {
21152110 case backend.CloudProvider == "amzn":
2116- cloudProvider = semconv.AttributeCloudProviderAWS
2117- case backend.OSType == "mcrsft":
2118- cloudProvider = semconv.AttributeCloudProviderAzure
2119- case backend.OSType == "gogl":
2120- cloudProvider = semconv.AttributeCloudProviderGCP
2111+ cloudProvider = semconv.CloudProviderAWS.Value.AsString()
2112+ case backend.CloudProvider == "mcrsft":
2113+ cloudProvider = semconv.CloudProviderAzure.Value.AsString()
2114+ case backend.CloudProvider == "gogl":
2115+ cloudProvider = semconv.CloudProviderGCP.Value.AsString()
21212116 }
21222117
2123- backendAttrs.PutStr(semconv.AttributeCloudProvider , cloudProvider)
2124- backendAttrs.PutStr(semconv.AttributeCloudRegion , backend.CloudRegion)
2118+ backendAttrs.PutStr(string( semconv.CloudProviderKey) , cloudProvider)
2119+ backendAttrs.PutStr(string( semconv.CloudRegionKey) , backend.CloudRegion)
21252120
21262121 switch {
21272122 case backend.OSType == "lnx":
2128- osType = semconv.AttributeOSTypeLinux
2123+ osType = semconv.OSTypeLinux.Value.AsString()
21292124 case backend.OSType == "wndws":
2130- osType = semconv.AttributeOSTypeWindows
2125+ osType = semconv.OSTypeWindows.Value.AsString()
21312126 case backend.OSType == "slrs":
2132- osType = semconv.AttributeOSTypeSolaris
2127+ osType = semconv.OSTypeSolaris.Value.AsString()
21332128 }
21342129
2135- backendAttrs.PutStr(semconv.AttributeOSType , osType)
2136- backendAttrs.PutStr(semconv.AttributeOSVersion , backend.OSVersion)
2130+ backendAttrs.PutStr(string( semconv.OSTypeKey) , osType)
2131+ backendAttrs.PutStr(string( semconv.OSVersionKey) , backend.OSVersion)
21372132
2138- backendAttrs.PutStr(semconv.AttributeServiceName , backend.ProcessName)
2139- backendAttrs.PutStr(semconv.AttributeServiceVersion , backend.Version)
2133+ backendAttrs.PutStr(string( semconv.ServiceNameKey) , backend.ProcessName)
2134+ backendAttrs.PutStr(string( semconv.ServiceVersionKey) , backend.Version)
21402135}
21412136
21422137func appendAtmSystemInstrScopeSpans(resourceSpans *ptrace.ResourceSpans) ptrace.ScopeSpans {
@@ -2478,15 +2473,14 @@ func generateBackendSystem() BackendSystem {
24782473}
24792474
24802475func getRandomNumber(min int, max int) int {
2481- rand.Seed(time.Now().UnixNano())
24822476 i := (rand.Intn(max-min+1) + min)
24832477 return i
24842478}
24852479
24862480func generateTraces(numberOfTraces int) ptrace.Traces {
24872481 traces := ptrace.NewTraces()
24882482
2489- for i := 0; i <= numberOfTraces; i++ {
2483+ for i := 0; i < numberOfTraces; i++ {
24902484 newAtm := generateAtm()
24912485 newBackendSystem := generateBackendSystem()
24922486
@@ -2514,8 +2508,8 @@ func fillResourceWithAtm(resource *pcommon.Resource, atm Atm) {
25142508 atmAttrs.PutStr("atm.stateid", atm.StateID)
25152509 atmAttrs.PutStr("atm.ispnetwork", atm.ISPNetwork)
25162510 atmAttrs.PutStr("atm.serialnumber", atm.SerialNumber)
2517- atmAttrs.PutStr(semconv.AttributeServiceName , atm.Name)
2518- atmAttrs.PutStr(semconv.AttributeServiceVersion , atm.Version)
2511+ atmAttrs.PutStr(string( semconv.ServiceNameKey) , atm.Name)
2512+ atmAttrs.PutStr(string( semconv.ServiceVersionKey) , atm.Version)
25192513
25202514}
25212515
@@ -2525,30 +2519,30 @@ func fillResourceWithBackendSystem(resource *pcommon.Resource, backend BackendSy
25252519
25262520 switch {
25272521 case backend.CloudProvider == "amzn":
2528- cloudProvider = semconv.AttributeCloudProviderAWS
2529- case backend.OSType == "mcrsft":
2530- cloudProvider = semconv.AttributeCloudProviderAzure
2531- case backend.OSType == "gogl":
2532- cloudProvider = semconv.AttributeCloudProviderGCP
2522+ cloudProvider = semconv.CloudProviderAWS.Value.AsString()
2523+ case backend.CloudProvider == "mcrsft":
2524+ cloudProvider = semconv.CloudProviderAzure.Value.AsString()
2525+ case backend.CloudProvider == "gogl":
2526+ cloudProvider = semconv.CloudProviderGCP.Value.AsString()
25332527 }
25342528
2535- backendAttrs.PutStr(semconv.AttributeCloudProvider , cloudProvider)
2536- backendAttrs.PutStr(semconv.AttributeCloudRegion , backend.CloudRegion)
2529+ backendAttrs.PutStr(string( semconv.CloudProviderKey) , cloudProvider)
2530+ backendAttrs.PutStr(string( semconv.CloudRegionKey) , backend.CloudRegion)
25372531
25382532 switch {
25392533 case backend.OSType == "lnx":
2540- osType = semconv.AttributeOSTypeLinux
2534+ osType = semconv.OSTypeLinux.Value.AsString()
25412535 case backend.OSType == "wndws":
2542- osType = semconv.AttributeOSTypeWindows
2536+ osType = semconv.OSTypeWindows.Value.AsString()
25432537 case backend.OSType == "slrs":
2544- osType = semconv.AttributeOSTypeSolaris
2538+ osType = semconv.OSTypeSolaris.Value.AsString()
25452539 }
25462540
2547- backendAttrs.PutStr(semconv.AttributeOSType , osType)
2548- backendAttrs.PutStr(semconv.AttributeOSVersion , backend.OSVersion)
2541+ backendAttrs.PutStr(string( semconv.OSTypeKey) , osType)
2542+ backendAttrs.PutStr(string( semconv.OSVersionKey) , backend.OSVersion)
25492543
2550- backendAttrs.PutStr(semconv.AttributeServiceName , backend.ProcessName)
2551- backendAttrs.PutStr(semconv.AttributeServiceVersion , backend.Version)
2544+ backendAttrs.PutStr(string( semconv.ServiceNameKey) , backend.ProcessName)
2545+ backendAttrs.PutStr(string( semconv.ServiceVersionKey) , backend.Version)
25522546}
25532547
25542548func appendAtmSystemInstrScopeSpans(resourceSpans *ptrace.ResourceSpans) ptrace.ScopeSpans {
0 commit comments