An example of the configuration file using OpenTelemetry Protocol (OTLP) over gRPC is as follows:
{
  "OpenTelemetryConfiguration": {
    "resource_attributes": "service.name=OE,myservice=test_openedge,location=client"
    "exporters": {
      "otlp": {
        "grpc": [
          {
            "endpoint": "http://localhost:4317",
            "span_processor": "batch",
            "batch_processor_options": {
              "max_queue_size": 500
            }
          }
        ]
      }
    }
  },
  "OpenEdgeTelemetryConfiguration": {
    "trace_procedures": "CustomerValidation.p, CustomerNewEntry.p, Order*",
    "trace_classes": "CustomerBE",
    "trace_abl_transactions": true,
    "trace_requires_parent": true,
    "trace_request_start": true
  }
}
In this configuration file, the following procedures and classes are defined for tracing:
  • Procedures:
    • CustomerValidation.p
    • CustomerNewEntry.p
    • Any procedure either with a name starting with Order or within a directory name starting with Order
  • Classes:
    • CustomerBE

An example of the configuration file using OTLP over HTTP is as follows:
{
  "OpenTelemetryConfiguration": {
    "resource_attributes": "service.name=OE,myservice=test_openedge,location=client"
    "exporters": {
      "otlp": {
        "http": [
          {
            "url": "http://localhost:4318/v1/traces",
            "content_type": "application/json",
            "json_bytes_mapping": "JsonBytesMappingKind::kHexId",
            "use_json_name": false,
            "timeout": "10s",
            "http_headers": {
              "test5": "value6",
              "test 6": "value 6"
            },
            "span_processor": "batch",
            "batch_processor_options": {
              "max_queue_size": 2048,
              "schedule_delay_millis": 5000,
              "max_export_batch_size": 512
            }
          },
          {
            "url": "http://localhost:4318/v1/traces",
            "content_type": "application/json",
            "json_bytes_mapping": "JsonBytesMappingKind::kHexId",
            "use_json_name": false,
            "timeout": "10s",
            "http_headers": {
              "test7": "value7",
              "test 8": "value 8"
            },
            "span_processor": "simple"
          }
        ]
      }
    }
  },
  "OpenEdgeTelemetryConfiguration": {
    "trace_procedures": "CustomerValidation.p, getOrder*, Order/list1.p",
    "trace_classes": "CustomerBE.*, BusinessEntity.Sales*",
    "trace_abl_transactions": true,
    "trace_requires_parent": true,
    "trace_request_start": true
  }
}
In this configuration file, the following procedures and classes are defined for tracing:
  • Procedures:
    • CustomerValidation.p
    • Any procedure either with a name starting with getOrder or within a directory name starting with getOrder
    • list1.p procedure within the Order directory
  • Classes:
    • All methods within all classes under CustomerBE
    • All methods with a name starting with Sales within all classes under BusinessEntity

An example of the configuration file using Ostream, which is useful for testing or debugging, is as follows:

{
  "OpenTelemetryConfiguration": {
    "resource_attributes": "service.name=OE,myservice=test_openedge,location=client"
    "exporters": {
      "ostream": [
        {
          "filename": "file1.out",
          "span_processor": "batch",
          "batch_processor_options": {
            "max_queue_size": 2048,
            "schedule_delay_millis": 5000,
            "max_export_batch_size": 512
          }
        },
        {
          "filename": "file2.out",
          "span_processor": "simple"
        }
      ]
    }
  },
  "OpenEdgeTelemetryConfiguration": {
    "trace_procedures": "CustomerNewEntry.p, Sales/*, Customer/list*",
    "trace_classes": "CustomerBE.*, BusinessEntity.EmployeeDetails, Order.Invoice*",
    "trace_abl_transactions": true,
    "trace_requires_parent": true,
    "trace_request_start": true
  }
}
In this configuration file, the following procedures and classes are defined for tracing:
  • Procedures:
    • CustomerNewEntry.p
    • All the procedures specified within the Sales directory
    • All procedures either within the directory name starting with Customer/list, or starting with list under the Customer directory
  • Classes:
    • All methods within all classes under CustomerBE
    • All methods defined in the EmployeeDetails class within BusinessEntity
    • All methods of class names that begin with Invoice under Order, including any sub-packages starting with Order.Invoice