Skip to content

Commit

Permalink
Testcase fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
chrlic committed Sep 8, 2022
1 parent 54a0b2d commit 446c24f
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 15 deletions.
11 changes: 9 additions & 2 deletions pkg/instrumentation/apacheagent.go
Expand Up @@ -16,6 +16,7 @@ package instrumentation

import (
"fmt"
"sort"
"strings"

"github.com/go-logr/logr"
Expand Down Expand Up @@ -227,8 +228,14 @@ LoadModule otel_apache_module %[1]s/WebServerModule/Apache/libmod_apache_otel%[2
apacheAgentDirectory+apacheAgentSubDirectory,
versionSuffix)

for attr, val := range attrMap {
configFileContent += fmt.Sprintf("%s %s\n", attr, val)
keys := make([]string, 0, len(attrMap))
for key := range attrMap {
keys = append(keys, key)
}
sort.Strings(keys)

for _, key := range keys {
configFileContent += fmt.Sprintf("%s %s\n", key, attrMap[key])
}

return configFileContent
Expand Down
26 changes: 13 additions & 13 deletions pkg/instrumentation/apacheagent_test.go
Expand Up @@ -46,7 +46,13 @@ func TestInjectApacheagent(t *testing.T) {
Spec: corev1.PodSpec{
Volumes: []corev1.Volume{
{
Name: volumeName,
Name: apacheAgentConfigVolume,
VolumeSource: corev1.VolumeSource{
EmptyDir: &corev1.EmptyDirVolumeSource{},
},
},
{
Name: apacheAgentVolume,
VolumeSource: corev1.VolumeSource{
EmptyDir: &corev1.EmptyDirVolumeSource{},
},
Expand All @@ -55,7 +61,7 @@ func TestInjectApacheagent(t *testing.T) {
InitContainers: []corev1.Container{
{
Name: apacheAgentCloneContainerName,
Image: "foo/bar:1",
Image: "",
Command: []string{"/bin/sh", "-c"},
Args: []string{"cp -r /usr/local/apache2/conf/* " + apacheAgentDirectory + apacheAgentConfigDirectory},
VolumeMounts: []corev1.VolumeMount{{
Expand All @@ -65,20 +71,14 @@ func TestInjectApacheagent(t *testing.T) {
},
{
Name: apacheAgentInitContainerName,
Image: "foo/bar:1",
Command: []string{"/bin/sh", "-c"},
Args: []string{
// Copy agent binaries to shared volume
"cp -ar /opt/opentelemetry/* " + apacheAgentDirectory + apacheAgentSubDirectory + " && " +
// Create agent configuration file by pasting content of env var to a file
"echo \"$" + apacheAttributesEnvVar + "\" > " + apacheAgentDirectory + apacheAgentConfigDirectory + "/" + apacheAgentConfigFile + " && " +
"sed -i 's/" + apacheServiceInstanceId + "/'${" + apacheServiceInstanceIdEnvVar + "}'/g' " + apacheAgentDirectory + apacheAgentConfigDirectory + "/" + apacheAgentConfigFile + " && " +
// Include a link to include Apache agent configuration file into httpd.conf
"echo 'Include " + apacheConfigDirectory + "/" + apacheAgentConfigFile + "' >> " + apacheAgentDirectory + apacheAgentConfigDirectory + "/" + apacheConfigFile,
},
"cp -ar /opt/opentelemetry/* /opt/opentelemetry-webserver/agent && export agentLogDir=$(echo \"/opt/opentelemetry-webserver/agent/logs\" | sed 's,/,\\\\/,g') && cat /opt/opentelemetry-webserver/agent/conf/appdynamics_sdk_log4cxx.xml.template | sed 's/__agent_log_dir__/'${agentLogDir}'/g' > /opt/opentelemetry-webserver/agent/conf/appdynamics_sdk_log4cxx.xml &&echo \"$OTEL_APACHE_AGENT_CONF\" > /opt/opentelemetry-webserver/source-conf/opentemetry_agent.conf && sed -i 's/<<SID-PLACEHOLDER>>/'${APACHE_SERVICE_INSTANCE_ID}'/g' /opt/opentelemetry-webserver/source-conf/opentemetry_agent.conf && echo 'Include /usr/local/apache2/conf/opentemetry_agent.conf' >> /opt/opentelemetry-webserver/source-conf/httpd.conf"},
Env: []corev1.EnvVar{
{
Name: apacheAttributesEnvVar,
Value: "",
Value: "\n#Load the Otel Webserver SDK\nLoadFile /opt/opentelemetry-webserver/agent/sdk_lib/lib/libopentelemetry_common.so\nLoadFile /opt/opentelemetry-webserver/agent/sdk_lib/lib/libopentelemetry_resources.so\nLoadFile /opt/opentelemetry-webserver/agent/sdk_lib/lib/libopentelemetry_trace.so\nLoadFile /opt/opentelemetry-webserver/agent/sdk_lib/lib/libopentelemetry_otlp_recordable.so\nLoadFile /opt/opentelemetry-webserver/agent/sdk_lib/lib/libopentelemetry_exporter_ostream_span.so\nLoadFile /opt/opentelemetry-webserver/agent/sdk_lib/lib/libopentelemetry_exporter_otlp_grpc.so\n\n#Load the Otel ApacheModule SDK\nLoadFile /opt/opentelemetry-webserver/agent/sdk_lib/lib/libopentelemetry_webserver_sdk.so\n#Load the Apache Module. In this example for Apache 2.4\n#LoadModule otel_apache_module /opt/opentelemetry-webserver/agent/WebServerModule/Apache/libmod_apache_otel.so\n#Load the Apache Module. In this example for Apache 2.2\n#LoadModule otel_apache_module /opt/opentelemetry-webserver/agent/WebServerModule/Apache/libmod_apache_otel22.so\nLoadModule otel_apache_module /opt/opentelemetry-webserver/agent/WebServerModule/Apache/libmod_apache_otel.so\n\n#Attributes\n\nApacheModuleOtelExporterEndpoint http://otlp-endpoint:4317\nApacheModuleServiceName apache-service-name\nApacheModuleServiceNamespace \nApacheModuleEnabled ON\nApacheModuleOtelSpanExporter otlp\nApacheModuleServiceInstanceId <<SID-PLACEHOLDER>>\nApacheModuleResolveBackends ON\nApacheModuleTraceAsError ON\n"
},
{Name: apacheServiceInstanceIdEnvVar,
ValueFrom: &corev1.EnvVarSource{
Expand All @@ -91,11 +91,11 @@ func TestInjectApacheagent(t *testing.T) {
VolumeMounts: []corev1.VolumeMount{
{
Name: apacheAgentVolume,
MountPath: apacheAgentDirectory + apacheAgentSubDirectory,
MountPath: apacheConfigDirectory,
},
{
Name: apacheAgentConfigVolume,
MountPath: apacheAgentDirectory + apacheAgentConfigDirectory,
MountPath: apacheAgentDirectory + apacheAgentSubDirectory,
},
},
},
Expand Down

0 comments on commit 446c24f

Please sign in to comment.